emeditor中正则表达式中怎么查找不含某几个特定字的一整行

如:123456789abcdefg12345我好6789abcdefg1234567你好89abcdefg12他好3456789abcdefg123456789abcd... 如:
123456789abcdefg
12345我好6789abcdefg
1234567你好89abcdefg
12他好3456789abcdefg
123456789abcdefg
如以上例子,我想查找出所有不含“你好”的行。请问怎么写正则表达式?
展开
 我来答
albumin
2013-12-10 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2393万
展开全部
^(?!.*你好).*$
追问
这个式子太牛了,只是我还是有点绕不过弯。^我知是从行首匹配。$我知是匹配到行尾。
.*我知道是匹配0至多个字符。(?!pattern)我也知道是排除性匹配。
但是你这个式子组合起来我就理解不清了,请给我具体讲讲吧。
尤其是为何()里的.*不放在^与(之间,以及为何)与$间的.*不能放在括号里你好的后面。
追答
默认情况下点匹配新行是没有被勾选的,因此^.*$可以匹配一行。

(?!pattern)这个是正则成立的条件,并不是实际匹配的一部分如果这样
^(?!.*你好.*)$ 实际上等于^$,理论上是匹配空行
如果将正则改为 ^.*(?!你好).*$,因为在^后.*可以匹配到"你好"两个字,而(?!你好)表示之前的正则即^.*之后不能是"你好",^.*已经匹配到"1234567你好89abcdefg",那么在它后面就不是"你好",所以条件成立可以匹配
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式