正则表达式匹配未跟随另一个特定字符的字符

时间:2016-08-10 10:56:06

标签: javascript regex

我正在为Brackets编写CodeMirror扩展。要定义SimpleCodeMode,我需要进行一些模式匹配,并且我想弄清楚如何实现$ subject。

e.g。

匹配所有html标记的<

<body>

并忽略后跟<%

的html标记
<% if %> 

注意:我只想获得它的起始<

如果有人可以帮助我,那将是一个很大的帮助。如果您需要更多详细信息,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:4)

虽然这似乎是一个坏主意,但我可以看到两种方法:

1。搜索<后跟除%字符之外的任何内容,然后忽略它

(<)(?:[^%])

[^]序列允许您搜索除以下字符之外的任何内容。

(?:)序列适用于非捕获组。

2。 (更好,如果支持的话)搜索输入后面没有%的前导

<(?!%)

(?!)序列如果与下一个字符不匹配,则会成功,但不会被捕获。

如果您还想为%>执行此操作,则可以“反转”第一个选项:

(?:[^%])(>)

或者您需要负面的背后隐藏:

(小心这里,前瞻不会起作用,因为你需要倒退)

(?<!%)>