【问题标题】:How to replace text starting with pattern?如何替换以模式开头的文本?
【发布时间】:2019-10-30 17:54:16
【问题描述】:

我在 notepad++ 7.5.2 文本编辑器中打开了这个文本:

- Note 1 message={"one":1}]
- Note 5 message={"two":2}]
- Note 2 message={"three":3}]
- Note 7 message={"four":4}]

对于每一行,我只想保留括号开始和结束括号 { } 和括号本身之间的文本。我在https://regex101.com/ 中尝试了一个正则表达式- Note.* message=,它可以工作。我能够在记事本++中找到匹配正则表达式的行。但是,我无法用任何东西代替它们。

如何更换?

【问题讨论】:

  • 喜欢这里,regex101.com/r/niH1ba/2?
  • @WiktorStribiżew - 谢谢。我将“查找内容”设置为 ^- Note.* message=(.*)]$ 并将“替换为”设置为 $1。 Notepad++ 说 0 次出现已被替换。我在查找中选择了正则表达式选项。所以,我不知道为什么这不起作用。
  • @WiktorStribiżew - 我选择了临时文档中的所有文本,然后尝试全部替换。现在可以了。谢谢。请将此添加为答案。我可以接受。谢谢
  • 查找:.*=|\]全部替换为nothing

标签: regex notepad++


【解决方案1】:

你可以使用

^- Note.* message=(.*)]$

替换为$1。请参阅regex demo

详情

  • ^ - 一行的开始
  • - Note - - Note 文字
  • .* - 除换行符以外的任何 0+ 个字符,尽可能多
  • message= - message= 文字
  • (.*) - 捕获组 1 ($1):除换行符之外的任何 0+ 个字符,尽可能多
  • ] - 一个 ] 字符
  • $ - 一行结束。

Notepad++ 演示和设置:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2016-08-28
    • 2019-07-02
    • 2021-07-21
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多