Regex 如何使用正则表达式选择文本中的特定数字
例如,Regex 如何使用正则表达式选择文本中的特定数字,regex,Regex,例如,(6:31,23:03),我想提取第一个数字6,然后下次我想提取31,之后是23,最后是03 对于31,我使用了\d+[^:]0-9],但它也使用逗号 对于03,我使用了\d+[^:,0-9],但这一个抓住了括号 每次只抓取一个数字(即总共四个正则表达式,每个数字对应一个数字)有多过分?这是文本的模板外观(6:31,23:03),只有数字更改0-99我突然想到这样的事情:\((\d+)(\d+),(\d+)(\d+)(\d+)。它使用四个捕获组一次性捕获每个数字簇。(您可以将\d+替换为\
(6:31,23:03)
,我想提取第一个数字6
,然后下次我想提取31
,之后是23
,最后是03
对于31
,我使用了\d+[^:]0-9]
,但它也使用逗号
对于03
,我使用了\d+[^:,0-9]
,但这一个抓住了括号
每次只抓取一个数字(即总共四个正则表达式,每个数字对应一个数字)有多过分?这是文本的模板外观(6:31,23:03),只有数字更改
0-99
我突然想到这样的事情:\((\d+)(\d+),(\d+)(\d+)(\d+)
。它使用四个捕获组一次性捕获每个数字簇。(您可以将\d+
替换为\d{1,2}
,以更严格地将数字簇限制在长度1和2之间)
演示:
编辑以处理评论 似乎有点不清楚确切的要求是什么,但如果我正确理解您想要四个正则表达式,每个正则表达式一次捕获一个数字簇,那么它们将如下所示:
\((\d+:\d+,\d+:\d+\)
\(\d+:(\d+)\d+:\d+\)
\(\d+:\d+,(\d+:\d+)
\(\d+:\d+,\d+:(\d+)
6
:31
,23
:03
也是31,但我需要分别使用它们。每个数字最多两位数\d+只适合选择第一个数字,在这种情况下为6。我用测试它,这样我就可以用\d+抓取第一个数字,如果不是单数,我不知道如何抓取其他3个需要更多的信息。例如,(\d{1,2})\d*:\d*(\d{1,2})
以全局方式。不需要一次性选择它们。它也需要在每次尝试中选择特定的数字。第一次尝试我选择6,第二次选择31,第三次选择23,第四次尝试选择03。所以我需要为每个数字指定特定的正则表达式。@falconProger这个答案完全符合您的要求。可以进一步修改以选择性地排除:和。你还想要什么?是的,但我使用的软件可以选择使用正则表达式从文本中提取文本信息。所以我需要提取数字,但每次都要提取。所以我没有选择排除的选项:@falconProger我不确定你的意思,所以我做了一个猜测。编辑是否解决了您的问题?