如何匹配其他所有内容,但无论它与正则表达式匹配?

时间:2013-11-23 10:57:10

标签: javascript regex match regex-lookarounds

我喜欢

some text here
<<<<<a href="/test.php?path=new&amp;id=221" style>>>>="display:block;">
some more text here

我正在尝试匹配除<<<<<a href="/test.php?path=new&amp;id=221" style>>>>

之外的所有内容

我也在考虑像[^<<<<<(.+)>>>>]这样简单易行的东西,但似乎(.+)似乎没有被考虑

任何想法?

2 个答案:

答案 0 :(得分:1)

[]意味着您正在定义一个角色类。

如果那些<>真的存在,那么:

var str = str.replace(/<<<<<(.+?)>>>>/, '');

.+?表示&#34;一个或多个字符的非贪婪匹配&#34; (如果我们离开?,它会很贪婪,因此可能会跟随它之后的>并使表达式不匹配。

这将替换第一个的地方,该文字没有任何内容,只留下它之前和之后的内容。

如果该文本可能出现在多个位置,请将全局标志添加到正则表达式:

var str = str.replace(/<<<<<(.+?)>>>>/g, '');

答案 1 :(得分:1)

如果您想匹配没有特定模式的每一行

,则有一个非运算符
^(?!<<<<<[^>]*>>>>)$

你需要标志

RegexOptions.Multiline