【问题标题】:replacing "\N" with regex用正则表达式替换“\ N”
【发布时间】:2017-11-17 13:18:37
【问题描述】:

有人可以帮我修复这个 notepad++ 正则表达式,以便它将文本 \N 替换为空格吗?

((?=.*?,Default)[^\r\n]*)(\N)

我希望仅在带有 ,Default 的行上替换文本 \N 的所有实例。

【问题讨论】:

  • 当你找到\r\n并用空格替换它时没有任何反应?
  • 什么意思?当我搜索“\r\n”时,它会找到一行的结尾。
  • \N 是否必须在 ,Default 之后,还是它们只需要出现在同一行中?第一种情况见,Default.*\K\\N,第二种情况见^(?=.*,Default).*\K\\N
  • 您要替换换行符还是特别是\N?如果它是第二个你必须用反斜杠转义 \,所以它会是 \\N.
  • @Sebastian Proske 他们只需要在同一行 Aleksandar Makragić 我需要专门替换 \N

标签: regex replace notepad++


【解决方案1】:

我建议

(?:\G(?!^)|^(?=.*,Default)).*?\K\\N

请参阅regex demo

详情

  • (?:\G(?!^)|^(?=.*,Default)) - 包含,Default 子字符串(^(?=.*,Default))的行位置的开头或上一个成功匹配的结尾(\G(?!^),因为\G 匹配字符串/行的开头,它的位置必须是减去负前瞻)
  • .*? - 除换行符之外的任何 0+ 字符,尽可能少
  • \K - 匹配重置运算符
  • \\N - 文字 \N 子字符串。

Notepad++ 中的测试:

\NSome text,Default\Nand more here\N
\Ntext \N text ,Default
New line \N\N\N

变成

【讨论】:

  • 替换可以是任何你喜欢的,我用了一个空格。
  • 后续问题可以修改搜索以在 \N 之前或之后包含空格吗?如“\N”或“\N”
  • @Tyler:如果空格应该只是水平的,可能有0个或多个,使用\h*:(?:\G(?!^)|^(?=.*,Default)).*?\K\h*\\N\h*
猜你喜欢
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 2020-11-05
  • 2021-11-30
  • 2014-03-29
相关资源
最近更新 更多