我有一个正则表达式,可以让我找到遵循这种模式的子串:12345/123
: '\d{5}/\d{3}'
.
我还想找到遵循相同模式但空格可以在任何地方(开头和结尾除外)的子字符串。以下是所有可能性:
1 2345/123
12 345/123
123 45/123
1234 5/123
12345 /123
12345/ 123
12345/1 23
12345/12 3
有没有一种简单的方法可以使用独特的正则表达式来做到这一点?
我目前对每种可能性都有一个正则表达式 ('\d\s\d{4}/\d{3}'
, '\d{2}\s\d{3}/\d{3}'
...),但这不是好的做法。
例子:
我有的字符串:
'THIS IS 50325/654 A TEST STRING 56 968/325 THIS IS A 65646 TEST 46546/ 564 STRING THIS 259 65/456 IS A TEST 54654/65 4 STRING'
我想获得的匹配项:['50325/654', '46546/564', '259 65/456', '54654/65 4']
编辑: 更多信息:
- 只有一个空格,最终会被删除
- 真实数据中还有许多其他数字,因此不幸的是,删除所有空格不是一种选择。示例:JLMREL 1515 25/15 115 RMK 46546/564 ==> 一场比赛 46546/564
最佳答案
你可以试试OR "|"在具有多个条件的正则表达式中运行
re.findall('\d{2,} \d{2,}/\d{3,} | \d{2,}/\d{3,} | \d{2,}/\d{1,} \d{1,}',a)
输出L
[' 50325/654 ', '56 968/325 ', '259 65/456 ', ' 54654/65 4']
关于Python:正则表达式:查找可以在任何地方的模式+空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52646581/