我正在尝试捕获以下内容中的6位数字:
ObjectID: !nrtdms:0:!session:slonwswtest1:!database:TEST:!folder:ordinary,486150:
我尝试了以下正则表达式:
\d+(?::$)
尝试使用非捕获组从返回的匹配中剥离冒号,但它返回冒号,如下所示:
486150:
任何想法我做错了什么?
答案 0 :(得分:3)
你想要一个积极的向前看:
\d+(?=:$)
非捕获组只是一个无法通过反向引用访问的组;尽管如此,他们仍然是比赛的一部分。
或者,您可以使用
(\d+):$
并获得第一个匹配组。
答案 1 :(得分:2)
可能你的正则表达式工具正在返回完整的匹配,因为那里没有任何捕获组。尝试将\d+
括在捕获组中,找到在正则表达式工具中获取捕获组1的方法。
或者,您也可以使用正面预见:
\d+(?=:$)
鉴于你想要捕获6位数,你可以明确地说明:
\d{6}
答案 2 :(得分:2)
你应该使用积极的前瞻而不是非捕获组
\d+(?=:$)
答案 3 :(得分:2)