我想删除字符串中最后一个数字之前的减号。字符串类似于 08131 66678-0
。我正在寻找 -\d{1}
并找到它。
应该用什么替换搜索来删除减号?我尝试将其替换为 \d{1}
- 但我得到一个添加了 \d{1}
的字符串。
最佳答案
您可以使用
-(?=\d$)
并替换为空字符串。或者,可以使用捕获组+反向引用:
-(\d$)
替换为$1
。
这里,
-
- 匹配并消耗连字符(即-
被放入要替换的匹配值中) -(?=\d$)
- 正向前瞻,仅检查行尾后面是否有数字,但该数字不会添加到匹配值中,也不会得到被取代(\d$)
- 一个捕获组,它消耗字符串末尾的数字,并将值放入可以使用$1
寻址的组内存缓冲区中> 替换模式中的占位符。
如果值不在行尾,则可以在数字模式之后使用字边界 \b
或负向前视 (?!\d)
(确保当前位置右侧没有数字)而不是 $
。
关于regex - 在Notepad++中删除最后一个数字之前的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50640742/