捕获捕获组中的第一个迭代,然后是量词(序列中的第一个字符)



在此示例中正则表达式:

([hi]){2,}

和此示例文本:

hiiii

我希望捕获组包含序列( h)的 first 字符 - 但它将仅捕获带有当前正则表达式的最后一个( i)。如何修改它以捕获第一个?

最简单的解决方案是将其与序列的其余部分隔离 -

([hi])[hi]+

在这里,您可以捕获第一个hi,然后捕获一个或多个(总共2个或更多)hiS。


>>> re.findall('([hi])[hi]+', 'hiiii')
['h']

您可以尝试以下方法:

import re
s = "hiiii"     
print(''.join(re.findall("^w|w$", s)))

输出:

hi

最新更新