【问题标题】:Replace ) in Notepad++在记事本++中替换)
【发布时间】:2018-02-06 18:10:30
【问题描述】:

) 出现在 1、2 或 3 位数字(不是字符,并且不删除数字本身)之后,如何替换它?

【问题讨论】:

  • 我不能复制这个。你要换什么?整个字符串')' 还是仅括号)?你能举一个可重现的例子吗?
  • 对不起,这还不够清楚。是的,我只是想替换括号。
  • 我有一段文字经常使用括号,比如(adsf adsf)。有很多地方可以找到(参考 adsf,34)。我试图将 ) 替换为 )\n (引入一个新行,但仅在 1、2 或 3 位数字出现在 ) 之前的情况下,而不是 ) 的其他出现,例如(参考 asdf,3)或(参考 adf,245)。

标签: regex replace notepad++ digits chars


【解决方案1】:

查找内容:((?<!\d)\d{1,3})\)

替换为:$1

这可确保) 出现在 1 到 3 位数字之后(不多也不少)。

只需将替换文本附加到 $1 的末尾即可。例如,如果你想用单词TEST 替换它,你的替换将是$1TEST

【讨论】:

  • 这在行首不起作用,例如:123)
  • 好点。更新了答案。我只记得 Notepad++ 如果它们不是可变长度,则允许负后向查看。
  • 嗯,现在好了。
【解决方案2】:

就这么简单:

  • 查找:((^|[^\d])\d{1,3})\)
  • 替换\1

别忘了在面板中启用正则表达式。

访问 this link 以尝试工作演示。

【讨论】:

  • 我正在尝试将“abc digit”替换为“efg digit”,但将“abc \d”替换为\1,regexp ON,正在删除该数字。例如abc 1 和 abc 2 替换为 efg
  • 字符串:abc 4 - 查找:[A-Za-z]+ (\d) - 替换:efg \1 - 结果:efg 4
猜你喜欢
  • 1970-01-01
  • 2013-08-20
  • 2019-02-04
  • 2016-05-21
  • 1970-01-01
  • 2015-10-15
  • 2013-11-23
  • 2013-11-25
相关资源
最近更新 更多