正则表达式:选择不包含标签的行

正则表达式:选择不包含标签的行

我不知道为什么这个正则表达式不起作用。

假设我有以下两行:

1. A Refined Form Of Exercising power</a></h1></td>

2. A Refined Form Of Exercising power</h1></td>

我想选择那些不包含标签的行</a>,这意味着搜索结果只会显示第二行。

我创建了一个正则表达式,但是不起作用:

(?:(?!<\/a>)).*

答案1

这个正则表达式应该有效:^((?!<\/a>).)*$

答案2

你想使用淬炼贪婪令牌但你打错了,点.必须是里面非捕获组(并且不需要转义斜线不是正则表达式中的特殊字符):

(?:(?!</a>).)*
#   here __^

如果要排除多个表达式,则必须使用替代方法:

(?:(?!</a>|</h1>|</td>).)*

或者

(?:(?!</(?:a|h1|td)>).)*

或者

(?:(?!</a>)(?!</h1>)(?!</td>).)*

相关内容