我试图捕捉以下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+):$
,并获得第一个比赛组。
太棒了。非常感谢。 – CodingUnderDuress
@CodingUnderDuress没问题,很高兴我能帮上忙。 – arshajii
可能是您的正则表达式工具正在返回完整匹配,因为您没有任何捕获组。尝试将\d+
放在捕获组中,并找到在正则表达式工具中获取捕获组1的方式。
另外,您还可以使用正前瞻:
\d+(?=:$)
的,而且是要捕捉6个数字,你就可以说明确:
\d{6}
你对这个工具可能是对的。尽管如此,先行的方法是伟大的。非常感谢。 – CodingUnderDuress
@CodingUnderDuress。不客气:)接受答案。 –
虽然他在该正则表达式中没有任何捕获组。 – arshajii
也许'\ d {6}'会比声称它在最后一部分简单字符串... – Bergi