Lud*_*sed 4 python regex substitution
今天,我正在学习很多正则表达式,但是我已经陷入了困境。我正在尝试在python中使用正则表达式交换单词,但似乎无法弄清楚。
例
s = 'How are you guys today'
# This is what I tried so far, but i obviously miss something
# because this is giving an IndexError: no such group
re.sub(r'\w+\w+', r'\2\1', s)
Run Code Online (Sandbox Code Playgroud)
预期结果
'are How guys you today'
Run Code Online (Sandbox Code Playgroud)
您需要使用捕获组并在单词之间匹配非单词字符:
import re
s = 'How are you guys today'
print(re.sub(r'(\w+)(\W+)(\w+)', r'\3\2\1', s))
# => are How guys you today
Run Code Online (Sandbox Code Playgroud)
参见Python演示
该(\w+)(\W+)(\w+)模式将匹配和捕获3组: