Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式-从字符串中提取前两位值(不同格式)_Python_Regex - Fatal编程技术网

Python 正则表达式-从字符串中提取前两位值(不同格式)

Python 正则表达式-从字符串中提取前两位值(不同格式),python,regex,Python,Regex,我试图从以下示例中提取两个数字: 19-AB-4444 2-24-123-5564 09-7-1234 09-1234-ABC 1-11-1234-CCC 结果将是: 19 24 09 09 11 我试图用lookbehinds来做这件事,但运气不好。请注意,始终会有一个两位数的数字,该值后面总是跟一些字符和一个四位数的数字。不会有超过一个两位数的数字,也不会有超过一个四位数的数字。我只需要2位数字。要提取一行中的前2位数字,而不考虑单词边界,您可以使用此正则表达式: ^(?:(?!\d\d

我试图从以下示例中提取两个数字:

19-AB-4444
2-24-123-5564
09-7-1234
09-1234-ABC
1-11-1234-CCC
结果将是:

19
24
09
09
11

我试图用lookbehinds来做这件事,但运气不好。请注意,始终会有一个两位数的数字,该值后面总是跟一些字符和一个四位数的数字。不会有超过一个两位数的数字,也不会有超过一个四位数的数字。我只需要2位数字。

要提取一行中的前2位数字,而不考虑单词边界,您可以使用此正则表达式:

^(?:(?!\d\d).)*(\d\d)
抓取俘获的第1组作为你的目标对手

(?:(?!\d\d)。*)*
将匹配任何右侧没有两位数字的字符中的0个或多个


但是,如果您的数据格式如您所述,则可以使用更简单的正则表达式:

\b\d\d\b

除非Python真的放松了对正则表达式的支持,否则您应该能够与
[0-9]{2}
相匹配。这正好与第一次出现的两个相邻数字相匹配。

这正是我一直在寻找的!谢谢这个条目
1-a-2-3-1223-AA
应该如何处理?@RomanPerekhrest根据最初的描述,我认为字符串在OP的数据集中是不可能的。“始终会有一个两位数的数字…不会有超过一个两位数的数字…”