我想删除字符串中最后一位数字前的减号。字符串就像08131 66678-0
。我正在寻找-\d{1}
并找到它。
应该用什么替换搜索来删除减号?我尝试用\d{1}
替换它 - 但我得到一个添加了\d{1}
的字符串。
答案 0 :(得分:3)
您可以使用
-(?=\d$)
并替换为空字符串。或者,可以使用捕获组+反向引用:
-(\d$)
替换为$1
。
下面,
-
- 匹配并使用连字符(即将-
放入要替换的匹配值中)
- (?=\d$)
- 一个积极的预测,只检查行后面是否有数字,但该数字未添加到匹配值且不会被替换
(\d$)
- 一个捕获组,它使用字符串末尾的数字,并将值放入组内存缓冲区,可以使用替换模式中的$1
占位符进行寻址。如果值不在行的末尾,则可以在数字模式\b
后面使用单词边界,或者使用否定前瞻(?!\d)
(确保没有数字立即到达当前位置的右侧)而不是$
。