匹配模式,只要它不在另一组字母数字字符内

时间:2018-05-22 18:21:29

标签: javascript regex

我有一个简单的模式:

LU ?[0-9]{2,10}{(?!\w)

哪个匹配

  • LU115087220
  • LU 115087220
  • :LU115087220.

基本上它应该匹配,只要它不在另一组字母数字字符内,例如JOHNLU115087220

请注意,此字符串隐藏在大型多行文字中,因此我无法使用^

我尝试过非捕获组:

(?:\W|\s)LU ?[0-9]{2,10}(?!\w)

但是,运行regex.exec(str)仍会捕获第一组中的非字母数字字符,例如:LU115087220 - > :LU115087220(应该是LU115087220)。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

你的正则表达式中有一个额外的{会让每件事都失败。包含\w的否定前瞻几乎意味着单词边界\b。将您的模式包含在其中:

\bLU ?[0-9]{2,10}\b

Live demo