问题描述
数字字数字。
例如:
2029 AG.IZTAPALAPA 2
我要提取同一捕获组中的AG.IZTAPALAPA 和 2来提取:
AG.IZTAPALAPA 2
我设法将它们捕获为单独的捕获组,而不是单个捕获组:
var date = new Date('2020/09/21 9:33');
var time = 23 * 1000; // in miliseconds
var result = new Date(date.getTime() + time);
谢谢您的帮助!
解决方法
Yo可以对示例字符串使用单个捕获组,以匹配由大写字符AZ组成的单个“单词”,中间带有一个可选点,该点不能在开头或结尾,后跟1个或多个数字。
\b\d+ ([A-Z]+(?:\.[A-Z]+)* \d+)\b
说明
-
\b
单词边界 -
\d+
-
(
捕获第1组-
[A-Z]+
匹配1个以上的大写字符A-Z -
(?:\.[A-Z]+)* \d+
重复0+次以匹配一个点和一个字符A-Z,然后匹配1+个数字
-
-
)
关闭第1组 -
\b
单词边界
或者您可以使图案更宽一些,以匹配点或字字符
\b\d+ ([\w.]+(?: [\w.]+)* \d+)\b
,
您还可以尝试以下操作:'\ d + \ s(\ D +)\ s(\ d +)'然后分别提取组值。
Python示例:
data = "2029 AG.IZTAPALAPA 2"
output = re.search("\d+\s(\D+)\s(\d+)",data)
output.group(1)
'AG.IZTAPALAPA'
output.group(2)
'2'