Skip to main content
 首页 » 编程设计

Python:正则表达式:查找可以在任何地方的模式+空间

2024年12月31日27dyllove98

我有一个正则表达式,可以让我找到遵循这种模式的子串: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']