【发布时间】:2015-03-18 08:52:33
【问题描述】:
我想在我用 Notepad++ 打开的文档中以10 开头并包含特定单词(例如“frog”)的所有行的末尾添加一些自定义文本。
到目前为止,我设法解决了第一部分。
搜索:
^(10)$替换:
\1;Batteries(将;Batteries添加到行尾)
我现在需要的是编辑这个正则表达式模式以仅识别那些也包含特定单词的行。
例如:
之前:1050;湖中有这只青蛙
之后:1050;湖里有这只青蛙;电池
【问题讨论】:
我想在我用 Notepad++ 打开的文档中以10 开头并包含特定单词(例如“frog”)的所有行的末尾添加一些自定义文本。
到目前为止,我设法解决了第一部分。
搜索:
^(10)$替换:
\1;Batteries(将;Batteries添加到行尾)
我现在需要的是编辑这个正则表达式模式以仅识别那些也包含特定单词的行。
例如:
之前:1050;湖中有这只青蛙
之后:1050;湖里有这只青蛙;电池
【问题讨论】:
您可以使用正则表达式来匹配您想要的行:
(^(10).*?(frog).*)
.*?是一个惰性量词,在青蛙之前得到最小值
并替换为:
$1;Battery
希望对你有帮助,
【讨论】:
你应该允许数字和行尾之间的任何字符:
^10(.*frog.*)$
替换将是10\1;Batteries(我们需要添加10 以将其保留在输出中)。
这是截图:
【讨论】:
1050 dont search here;search for frog here;also not look here;not here
^10([^;]*;[^;]*frog[^;]*;.*)$(或^10([^;]*;[^;]*\bfrog\b[^;]*;.*)$,如果您搜索整个单词frog)。我们在开头搜索10,然后搜索除; 之外的任何内容,然后搜索第一个分隔符;,然后搜索任意数量的非; 和我们的单词,然后再搜索除; 之外的任何内容,第二个分隔符,然后是任意数量的任意符号,直到行尾。
试试这个
找到:(^(10).*(frog).*)
替换为:$1;Battery
【讨论】:
使用^(10.*frog.*)$ 作为正则表达式。将其替换为 $1;Batteries
【讨论】: