在单个字符串中标识多个正则表达式匹配,并为每个匹配获取子字符串

时间:2017-07-05 13:33:18

标签: python regex string

我想找到带有正则表达式模式的字符串。 例如:

# header ## smaller header

我想找到两个字符串集如下。

# header
## smaller header

所以我按如下方式制作正则表达式。

pattern = re.compile("(?:^#+|\s#+)\s")

使用这种模式,我可以找到#header。

# header

但我找不到像## smaller header

这样的字符串

如何制作正则表达式以便找到两组字符串?

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作

import re
p = re.compile(r"#+(\s\w+)+")
for m in p.finditer('# header ## smaller header'):
    print(m.group())

输出

# header 
## smaller header

答案 1 :(得分:1)

       import re
       pattern = re.compile("#+[\s\w]+")
       a = re.findall(pattern,'# header ## smaller header')
       print (*a,sep="\n")