RegEx End of Line

时间:2011-08-24 17:22:39

标签: regex dreamweaver

我正在尝试查找不以</url>

结尾的行

这是我到目前为止的正则表达式。

\<\/url\>

我可以找到</url>,但我正在寻找最后遗漏的行。

我的数据如下:

<url><loc>blah1 blah1 blah1</loc></url>    
<url><loc>blah2 blah2 blah2    
<url><loc>blah3 blah3 blah3</loc></url>

在这个例子中,我试图找到看起来像blah2的行

提前致谢!

2 个答案:

答案 0 :(得分:1)

只要行末没有空格,这个正则表达式就适用于你:

/^.*?(?<!<\/url>)$/

编辑这是另一个更复杂的解决方案:

^.*?([^>]|[^l].|[^r].{2}|[^u].{3}|[^/].{4}|[^<].{5})$

答案 1 :(得分:0)

试试这个:

^(?:(?!</url>$).)*$

这实际上是^.*$,但每次.即将匹配时,前瞻会尝试匹配</url>后跟行尾。如果成功,则匹配失败。

但是,我注意到示例中的前两行以多个空格字符结尾。如果你的真实数据是真的,你需要在前瞻中允许它:

^(?:(?!</url>[ \t]*$).)*$

这也将匹配一个完全空行。如果您想要至少一个字符,可以将*更改为+

^(?:(?!</url>$).)+$

...或者您可能只希望将开始的行与<url>匹配:

^<url>(?:(?!</url>$).)$