python 使用正则表达式交换单词
python swap words using regex
我今天学习了很多正则表达式,但我已经卡在了某个地方。
我正在尝试在 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'', s)
预期结果
'are How guys you today'
您需要使用 capturing groups 并匹配单词之间的非单词字符:
import re
s = 'How are you guys today'
print(re.sub(r'(\w+)(\W+)(\w+)', r'', s))
# => are How guys you today
(\w+)(\W+)(\w+)
模式将匹配并捕获 3 个组:
(\w+)
- 第 1 组(从替换模式中引用 </code> <a href="http://www.regular-expressions.info/replacebackref.html" rel="noreferrer"><strong>numbered backreference</strong></a>):一个或多个单词字符 </li>
<li><code>(\W+)
- 第 2 组(用 </code> 表示):一个或多个非单词字符 </li>
<li><code>(\w+)
- 第 3 组(用
表示):一个或多个单词字符
您需要使用群组来实现此目的。您还应该在您的组中指明空间。下面输出你想要的。
s = 'How are you guys today'
re.sub(r'(\w+ )(\w+ )', r'', s)
我今天学习了很多正则表达式,但我已经卡在了某个地方。 我正在尝试在 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'', s)
预期结果
'are How guys you today'
您需要使用 capturing groups 并匹配单词之间的非单词字符:
import re
s = 'How are you guys today'
print(re.sub(r'(\w+)(\W+)(\w+)', r'', s))
# => are How guys you today
(\w+)(\W+)(\w+)
模式将匹配并捕获 3 个组:
(\w+)
- 第 1 组(从替换模式中引用</code> <a href="http://www.regular-expressions.info/replacebackref.html" rel="noreferrer"><strong>numbered backreference</strong></a>):一个或多个单词字符 </li> <li><code>(\W+)
- 第 2 组(用</code> 表示):一个或多个非单词字符 </li> <li><code>(\w+)
- 第 3 组(用表示):一个或多个单词字符
您需要使用群组来实现此目的。您还应该在您的组中指明空间。下面输出你想要的。
s = 'How are you guys today'
re.sub(r'(\w+ )(\w+ )', r'', s)