我想把绳子换成
'''1 2 3 4 5 6 abcde fghij klmno pqrst 7 8 9 10 uvwxyz abcdef 11 12 13'''
到
^{pr2}$这就是我的方法:
s = re.sub(r'(\d) ([a-z])', r'\1\n\2', s)
s = re.sub(r'([a-z]) (\d)', r'\1\n\2', s)
如何在one regular expression
中执行此操作?我知道我可以用re.findall
和groups
来做,但我想找到一个更简单的方法?在
我真的认为最简单的方法是使用}-ing来匹配:
findall
而不是拆分或{或者在一行中:
^{pr2}$给出:
\d+(?:\s+\d+)*
匹配带有数字和空格的部分。在[a-z]+(?:\s+[a-z]+)*
用字母和空格匹配部分。在也可以使用正则表达式:
它将匹配第2组和第3组或第4组和第5组。=]
以下是使用单个正则表达式执行此操作的两种方法:
使用条件模式。捕获},然后相应地定义模式的其余部分。在
\1
很简单。Capture\4
检查我们是抓取\2
还是{只替换空格,并用lookbehind和lookahead断言包围它。在
但是你的两个简单正则表达式比这些废话要好。在
相关问题 更多 >
编程相关推荐