首页 > 解决方案 > Notepad++:我可以使用正则表达式来查找一些值并只删除一个字符而不是整个模式吗?

问题描述

我想在记事本中使用正则表达式来查找这种模式:"[0-9]+[\.][0-9]+[,][0-9]+"例如 1.010,80260 但是从这些数字中我只想删除“。” ,所以新值应该是 1010,80260 。到目前为止,我只能替换整个模式。有没有办法做到这一点?

先感谢您!

标签: regexnotepad++

解决方案


您可以使用\K元转义,因为 PCRE 不支持可变宽度后视:

正则表达式:

[0-9]+\K[\.](?=[0-9]+[,][0-9]+)
  • [0-9]+- 捕捉数字
  • \K- 忘记我们捕捉到的东西
  • [\.]- 捕捉一个时期;可以\.使用,不需要char类括号
  • (?=[0-9]+[,][0-9]+)- 在我前面应该是数字,后跟逗号和数字

代替:

没有什么

在此处输入图像描述


\KNotepad++ 中存在错误,因此您可以改用此正则表达式,因为您只关心句号后面至少有一位数字:

(?<=\d)\.(?=[0-9]+[,][0-9]+)

推荐阅读