【发布时间】:2020-01-24 14:45:29
【问题描述】:
我尝试构建简单的正则表达式来删除某些不良(不需要的)代码部分和需要使用的查找功能。
在我添加\s+ 以从标记中排除空格之前,它一直有效。
消除部分表达式我终于到了(?<=\s+)foo,它仍然被警告为无效表达式。
它可能看起来有点奇怪或不清楚,所以扩展它:
(?<=foo\s+)bar 被警告为无效表达式,其中 (?<=foo)\s+bar 正在工作,但它在 bar 之前标记空格。
我在notepad++中使用它。
【问题讨论】:
-
来自 Regex101 :“lookbehind 中的量词使其宽度不固定”
-
我认为不支持在后视中使用量词。你可以改用
\bfoo\s+\Kbar。 -
可变长度lookbehinds仅在某些正则表达式中可用,例如.net
-
我认为您不需要回顾。如果您要删除内容,请使用捕获组来标记您要保留的内容,并将其余内容排除在外。这基本上会删除其余部分。
-
您可以使用单词边界来强制单词的实际开头:
\bfoo会确保 foo 前面是非单词字符。
标签: regex expression notepad++