匹配模式前面没有字符
我想让我的正则表达式匹配一个模式,前提是前面没有字符^
(回音符)。匹配模式前面没有字符
我的正则表达式: /[^\^]\w+/g
文本测试它: Test: ^Anotherword
匹配: “测试” 和 “Anotherword”,即使后者由前抑扬。我试图通过在开始时插入[^\^]
来阻止。所以我不仅试图与旋律不匹配,而且还试图追随它。 “另一个字”不应该匹配。
[^\^]
- 这是什么应该阻止正则表达式匹配,如果重音circonflexe在它前面。
\w+
- 匹配任何前面没有加入旋律的词。
由于JavaScript限制,我无法使用lookbehind。
使用([^^\w]|^)\w+
(见http://regexr.com/3e85b)
它基本上是注入一个字边界,而排除了^为好。 [^\w] = \W\b\w
否则[^^]
将匹配一个 '^ T
'
和\w+
将匹配est
。
如果您在其周围放置捕获组,则可以看到它。
用于此'/([^^ \ - \。\ d])(\ - ?(\ d + \。)?\ d + \ * \ - ?(\ d + \。)?\ d +)/ g',这是我真正想要工作的东西,它可以用你的解决方案。它虽然没有添加'| ^',你能解释一下吗? –
当然,在JS中,当使用'(something | ^)'代替逆序时,它会从字符串/行开头读取_OR_。让它在没有任何字符的开始处匹配。这可以模拟,例如,负面的后顾之处,'(? sln
你可以使用/(?<!^)\w+/g
正如我在我的问题,因为我使用JavaScript –
的解释。如果匹配不严格禁止的。
(?:\^\w+)|(\w+)
:匹配两个表达式,但没有为^Anotherworld
生成组。
-
(?:\^\w+)
:匹配^Kawabanga
但未生成组。 -
(\w+)
:其他所有的分组。
我想要你的情况^Anotherworld
只能删除一个组?:
。
这将工作我不能使用负回顾后说,但我真的寻找的东西,止跌” (^^Anotherword') –
'([^^] | ^)\ w +'那么如果需要的话,在替换时写回'$ 1'。不,它的工作,但它匹配'T',然后'EST' – sln
这似乎并不奏效,我做错了什么? http://regexr.com/3e855 –
使用'([^^ \ w] | ^)\ w +'参见http://regexr.com/3e85b它基本上构成了一个字边界。 – sln