正则表达式从字符串中查找所有匹配项

时间:2015-05-19 12:35:31

标签: python regex substring

我有字符串:

TEXT OF SWITZERLAND CASABLANCA, 2041 Cash 1234e

我想提取长度至少为4的所有字母数字值(数字必须),包含或不包含特殊字符/\_:.\-|

以下是我尝试的正则表达式。

(?=.{4,}$)(?=.*[0-9])([a-zA-Z0-9/\\_:.\-|]+)$

但是这只捕获了所需的模式,如果它在字符串中的最后一个。 我想捕捉所有的价值观。在这种情况下20411234e

我尝试了answers的解决方案,还有一些解决方案,但都没有。

2 个答案:

答案 0 :(得分:2)

\b(?=[a-zA-Z]*\d)[a-zA-Z0-9/\\_:.\-|]{4,}\b

试试这个。$只会导致找到最后一个匹配。\b会标记单词边界并获得所有匹配。请参阅演示

https://www.regex101.com/r/fJ6cR4/15#python

答案 1 :(得分:1)

添加到VKS的答案,正则表达式无法匹配字符串ABSTRD.910.824

我试过这个并且效果很好。

正则表达式: \b(?=[a-zA-Z/\\_:\-.|]*\d)[a-zA-Z0-9/\\_:\-.|]{4,}\b