gpt4 book ai didi

python - 正则表达式搜索和替换 : How to move characters in a block of text

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:21 25 4
gpt4 key购买 nike

我遇到了搜索和替换问题。举个例子。

我想从:

"Word1 word2 =word3 *word4 word5= word6 word7* (*word8)"

对此:

"Word1 word2 word3= word4* word5= word6 word7* word8*"

即将任何以 * 或 = 开头的单词替换为 * 或 = 移动到单词的末尾,更糟糕的是,有时这些单词位于括号中,和/或可能位于一行的开头或结尾。

我试图寻找解决方案,但我在正则表达式方面相对较新,虽然我可以拼凑出解决方案来找到我正在寻找的词,例如:

\[\*,\=][a-zA-Z]{1,}[\s,\)]

我无法弄清楚/理解如何替换和维护行尾/行首字符、空格和括号。

我正在使用 Python,但如果它产生重大差异,我很乐意尝试使用其他东西。

最佳答案

您需要 2 个捕获组并将它们替换在一起:

>>> import re
>>>
>>> s = "Word1 word2 =word3 *word4 word5= word6 word7* (*word8)"
>>>
>>> re.sub(r'(\*|=)(\b\w+\b)', r'\2\1', s)
'Word1 word2 word3= word4* word5= word6 word7* (word8*)'

关于python - 正则表达式搜索和替换 : How to move characters in a block of text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974589/

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