匹配模式前面没有字符

时间:2016-09-16 00:05:15

标签: javascript regex

我想让我的正则表达式匹配一个模式,只有它前面没有一个字符,在我的情况下是^(circumflex)。

我的正则表达式:     /[^\^]\w+/g

要测试的文字:     Test: ^Anotherword

匹配:“测试”和“另一个词”,即使后者之前有一个回旋。我试图通过在开始时插入[^\^]来防止这种情况。因此,我不仅试图不匹配旋律,而且还追随它之后的词。 “另一个词”不应该匹配。

[^\^] - 如果一个重音circonflexe在它前面,这就应该阻止正则表达式匹配。

\w+ - 匹配任何没有回旋的单词。

由于JavaScript的限制,我无法使用lookbehind。

3 个答案:

答案 0 :(得分:1)

使用([^^\w]|^)\w+
(见http://regexr.com/3e85b

它基本上注入了一个单词边界,同时也排除了^ [^\w] = \W\b\w

否则[^^]将匹配'^ T' \w+将匹配est

如果您在其周围放置捕获组,则可以看到它。

答案 1 :(得分:0)

如果没有严格禁止匹配。

(?:\^\w+)|(\w+):匹配两个表达式,但不为^Anotherworld生成任何组。

  • (?:\^\w+):匹配^Kawabanga,但不会生成任何组。
  • (\w+):其他用于分组的内容。

我希望^Anotherworld让小组只删除?:

答案 2 :(得分:-1)

您可以使用scanf("%d", &i)

请参阅http://www.regular-expressions.info/lookaround.html

上的说明