求匹配括号前整数及括号内整数的正则表达式
匹配括号相关整数的正则解决方案
嘿,我来帮你搞定这个正则需求!看了你的示例字符串,我猜你是想提取像[ART.117.4002]里的117、4002,还有[ADA.1.316]里的1、316这类和括号相关的整数对吧?下面给你几个实用的正则方案:
精准适配你的示例场景
这个正则专门针对你给出的日志格式,能准确提取方括号内标签里的所有整数:
(?<=\.)\d+|\d+(?=\.|\])
怎么理解这个正则?
(?<=\.)\d+:匹配前面是点的整数,比如ADA.1.316里的1和316,都是紧跟在点后面的数字\d+(?=\.|\]):匹配后面是点或者右方括号的整数,比如ART.117.4002里的117(后面是点)和4002(后面是右方括号)
用这个正则匹配你的示例字符串,会得到这四个整数:117、4002、1、316,完全符合需求!
更通用的版本(适配多种括号场景)
如果之后你需要匹配其他类型括号(比如圆括号、大括号)里的整数,或者括号前后的整数,可以用这个更灵活的版本:
\d+(?=[\[\(\{]|\.])|(?<=[\[\(\{]\w*\.)\d+(?=[\]\)\}]|$)|(?<=[\[\(\{])\d+(?=[\]\)\}])
它能覆盖这些场景:
- 匹配
(123)、[ITEM.456]、{CODE.789}里的整数 - 同时兼容括号前/后直接跟整数的情况,比如
123(abc)里的123
内容的提问来源于stack exchange,提问作者Giriraj Banshiwala
相关产品推荐
相关产品推荐

