emeditor中正则表达式中怎么查找不含某几个特定字的一整行
如:123456789abcdefg12345我好6789abcdefg1234567你好89abcdefg12他好3456789abcdefg123456789abcd...
如:
123456789abcdefg
12345我好6789abcdefg
1234567你好89abcdefg
12他好3456789abcdefg
123456789abcdefg
如以上例子,我想查找出所有不含“你好”的行。请问怎么写正则表达式? 展开
123456789abcdefg
12345我好6789abcdefg
1234567你好89abcdefg
12他好3456789abcdefg
123456789abcdefg
如以上例子,我想查找出所有不含“你好”的行。请问怎么写正则表达式? 展开
1个回答
展开全部
^(?!.*你好).*$
追问
这个式子太牛了,只是我还是有点绕不过弯。^我知是从行首匹配。$我知是匹配到行尾。
.*我知道是匹配0至多个字符。(?!pattern)我也知道是排除性匹配。
但是你这个式子组合起来我就理解不清了,请给我具体讲讲吧。
尤其是为何()里的.*不放在^与(之间,以及为何)与$间的.*不能放在括号里你好的后面。
追答
默认情况下点匹配新行是没有被勾选的,因此^.*$可以匹配一行。
(?!pattern)这个是正则成立的条件,并不是实际匹配的一部分如果这样
^(?!.*你好.*)$ 实际上等于^$,理论上是匹配空行
如果将正则改为 ^.*(?!你好).*$,因为在^后.*可以匹配到"你好"两个字,而(?!你好)表示之前的正则即^.*之后不能是"你好",^.*已经匹配到"1234567你好89abcdefg",那么在它后面就不是"你好",所以条件成立可以匹配
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询