regex - 在Notepad++中删除最后一个数字之前的字符

标签 regex notepad++

我想删除字符串中最后一个数字之前的减号。字符串类似于 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/

相关文章:

regex - Powershell/正则表达式 : Get 8 Characters after given String

javascript - 正则表达式:匹配所有字符串但捕获两个符号之间的组

javascript - 按单词拆分,除非短语包含该单词

regex - 两个正则表达式字符\b和\<有什么区别

python - 使用Notepad++时如何删除关联符号?

html - 实时预览/所见即所得对 Notepad++ 的支持?

java - Java中如何删除字符串开头的空格而不是制表符?

regex - 从 Notepad++ 中提取 FunctionList 的函数名称

regex - notepad++ 正则表达式删除大括号之间的所有文本

windows - 使用 Notepad++ 编辑 DOT 文件