【问题标题】:Add to end of line that contains a specific word and starts with x添加到包含特定单词并以 x 开头的行尾
【发布时间】:2015-03-18 08:52:33
【问题描述】:

我想在我用 Notepad++ 打开的文档中以10 开头并包含特定单词(例如“frog”)的所有行的末尾添加一些自定义文本。

到目前为止,我设法解决了第一部分。

搜索: ^(10)$

替换: \1;Batteries(将;Batteries 添加到行尾)

我现在需要的是编辑这个正则表达式模式以仅识别那些也包含特定单词的行。

例如:

之前1050;湖中有这只青蛙

之后:1050;湖里有这只青蛙;电池

【问题讨论】:

    标签: regex notepad++


    【解决方案1】:

    您可以使用正则表达式来匹配您想要的行:

    (^(10).*?(frog).*)
    

    .*?是一个惰性量词,在青蛙之前得到最小值

    并替换为:

    $1;Battery
    

    希望对你有帮助,

    【讨论】:

      【解决方案2】:

      你应该允许数字和行尾之间的任何字符:

      ^10(.*frog.*)$

      替换将是10\1;Batteries(我们需要添加10 以将其保留在输出中)。

      这是截图:

      【讨论】:

      • 我还有一个问题。如果我只想在第一个和第二个分号分隔符之间搜索单词“frog”怎么办。例如1050 dont search here;search for frog here;also not look here;not here
      • 这有点复杂,但可能:^10([^;]*;[^;]*frog[^;]*;.*)$(或^10([^;]*;[^;]*\bfrog\b[^;]*;.*)$,如果您搜索整个单词frog)。我们在开头搜索10,然后搜索除; 之外的任何内容,然后搜索第一个分隔符;,然后搜索任意数量的非; 和我们的单词,然后再搜索除; 之外的任何内容,第二个分隔符,然后是任意数量的任意符号,直到行尾。
      • 确实很复杂。 :) 感谢您对此正则表达式的某些部分所做的深入解释。
      【解决方案3】:

      试试这个 找到:(^(10).*(frog).*) 替换为:$1;Battery

      【讨论】:

        【解决方案4】:

        使用^(10.*frog.*)$ 作为正则表达式。将其替换为 $1;Batteries

        【讨论】:

          猜你喜欢
          • 2020-09-23
          • 2015-05-31
          • 2012-03-05
          • 2021-02-10
          • 2011-07-26
          • 2022-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多