我怎么能这个正则表达式简单?

时间:2014-11-04 13:46:08

标签: python regex

我有这个正则表达式:

"\w{4}[A-D]{1}[a-d]*\s*"

如何使用[A-D]{1}[a-d]*\s*之类的内容多次重复*部分内容?

所以,如果我有表达式:

"Bed0Dabc Babc Cabb99rrAbaaaa Daa6ab"

正则表达式会给我:

"Bed0Dabc Babc Cabb"
"99rrAbaaaa Daa"

2 个答案:

答案 0 :(得分:0)

您的正则表达式无效且启动时缺少“\”,您所需的输出也无效,第二个字符串应为“99rrAbaaaa Daa”。

我相信你的意思是群体,这是一个非常基本的概念,你应该在使用之前阅读更多有关正则表达式的内容。 期望的正则表达式:

\w{4}([A-D][a-d]*\s*)+

答案 1 :(得分:0)

您应该将\s添加到字符集中。

import re

data = 'Bed0Dabc Babc Cabb99rrAbaaaa Daa6ab'
pattern = r'\w{4}(?:[A-D][a-d\s]*)+'

matches = re.findall(pattern, data)

结果:

['Bed0Dabc Babc Cabb', '99rrAbaaaa Daa']

组开头的?:定义了非捕获组。如果省略它,结果将如下所示。

['Cabb', 'Daa']