匹配Regex中的三次匹配

时间:2018-05-12 21:03:44

标签: python regex

这是我的语法正则表达式:

(SL [0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9])|\
(SL [0-9][0-9][0-9][0-9][A-Z] [0-9][0-9][0-9][0-9][0-9][0-9])|\
(SL [0-9][0-9][0-9][0-9][A-Z] [0-9][0-9[0-9][0-9][A-Z][0-9])

这是一个表达式

SL 5123 5016 test abcd SL 5445C 297741 eff SL 1288C 8709N5

我需要:

  • SL 5123 5016
  • SL 5445C 297741
  • SL 1288C 8709N5

语法正则表达不起作用。错误在哪里?

在我使用语法的地方,我只得到两个结果

  • SL 5123 5016
  • SL 5445C 297741

但我需要三个或更多。

请帮帮我。

1 个答案:

答案 0 :(得分:-1)

为什么不只是SL\s[A-Z\d]{4,6}\s[A-Z\d]{4,6}

import re
_str = "SL 5123 5016 test abcd SL 5445C 297741 eff SL 1288C 8709N5"
result = re.findall( r"SL\s[A-Z\d]{4,6}\s[A-Z\d]{4,6}", _str )
# ['SL 5123 5016', 'SL 5445C 297741', 'SL 1288C 8709N5']

Ideone Demo

Regex Demo and Explanation