如何解决正则表达式背后的记事本++
我正在尝试使用正则表达式来获取大小不同的字符串的最后 3 位数字。字符串的开头总是以名称开头 - 示例:
“姓名-0000425” “姓名-00123” “姓名-123”
我希望正则表达式获取这个数字的最后 3 位数字并将其替换为这些数字。这是我尝试过的正则表达式,但它只抓取前 3 位数字。
(?-s)(?<=Name-)(\d{3})
任何帮助将不胜感激!谢谢!
解决方法
你可以使用
(?<=Name-)\d*(\d{3})
替换为 $1
。请参阅regex demo。
或者,您也可以使用 (Name-)\d*(\d{3})
并替换为 $1$2
。
详情
-
(?<=Name-)
- 与紧跟在Name-
前面的位置相匹配的正向后视 -
\d*
- 任意零个或多个数字 -
(\d{3})
- 第 1 组($1
指的是替换模式中的此值):三位数。
注意事项
- 如果您只想删除初始零,可以使用
(?<=Name-)0+(\d{3})
正则表达式。 - 如果该行的最后三位数字之前还有其他任何内容,您可以使用
(?<=Name-).*(\d{3})
。 - 如果在单行双引号内的最后三位数字之前可以有任何其他内容,您可以使用
(?<=Name-)[^"\n\r]*(\d{3})
。
最短的正则表达式将是...
查找内容:\d{3}"
将其替换为 789"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。