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