【问题标题】:Notepad++ - regex : replace first occurrence of a characters group in each lineNotepad++ - 正则表达式:替换每行中第一次出现的字符组
【发布时间】:2018-02-27 11:33:54
【问题描述】:

有人会知道可以使用正则表达式(在 notepad++ 中)来替换每行中第一次出现的字符组吗?

例如:

abcdefg//ijkl//m.
qsdflkj//sdqlmkf//jqsmdl.

abcdefg\\ijkl//m.
qsdflkj\\sdqlmkf//jqsmdl.

所以在每一行中将// 替换为\\,但只有第一次出现,而不是下一次。

如果正则表达式无法实现,是否有另一种使用记事本的方法。如果没有,我会编写一个程序来分割线并完成这项工作,但需要更多时间。

提前问好。

【问题讨论】:

  • ^(.*?)(\/\/)(.*) 带有 gm 修饰符和替换 $1\\$3

标签: regex replace notepad++


【解决方案1】:

Find what 字段中输入此正则表达式

(.*?)//(.*)

Replace with字段中输入这个

$1\\$2

Search Mode 中选择Regular expression 并取消选中. matches newline

【讨论】:

  • 这不只是我评论的复制/改写吗?
  • 对不起,我在发布之前没有看到它。我应该删除这个答案吗?
  • 太棒了!!完美运行。非常感谢 Youssef13 和 @ctwheels,如果他是原作者的话....
【解决方案2】:
  • Ctrl+H
  • 查找内容:^[^/]+\K//
  • 替换为:\\\\
  • 检查环绕
  • 检查正则表达式
  • 全部替换

说明:

^               : begining of line
  [^/]+         : 1 or more any character that is not a slash
  \K            : forget all we have seen until this position
  //            : 2 slashes

替换:

\\\\     : 2 backslashes, each one must be escaped

给定示例的结果:

abcdefg\\ijkl//m.
qsdflkj\\sdqlmkf//jqsmdl.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 2015-05-21
    • 2014-04-26
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多