gpt4 book ai didi

python使用正则表达式交换单词

转载 作者:太空狗 更新时间:2023-10-30 02:39:43 25 4
gpt4 key购买 nike

我今天学习了很多正则表达式,但我已经卡在了某个地方。我正在尝试在 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)

预期结果

'are How guys you today'

最佳答案

您需要使用 capturing groups并匹配单词之间的非单词字符:

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

参见 Python demo

(\w+)(\W+)(\w+) 模式将匹配并捕获 3 个组:

  • (\w+) - 第 1 组(从替换模式中用 \1 numbered backreference 引用):一个或多个单词字符
  • (\W+) - 第 2 组(用 \2 表示):一个或多个非单词字符
  • (\w+) - 第 3 组(用 \3 表示):一个或多个单词字符

关于python使用正则表达式交换单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43756716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com