我有这个正则表达式:
"\w{4}[A-D]{1}[a-d]*\s*"
如何使用[A-D]{1}[a-d]*\s*
之类的内容多次重复*
部分内容?
所以,如果我有表达式:
"Bed0Dabc Babc Cabb99rrAbaaaa Daa6ab"
正则表达式会给我:
"Bed0Dabc Babc Cabb"
"99rrAbaaaa Daa"
答案 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']