将“&&”替换为“和”使用re.sub公司在python中。

2024-04-23 18:29:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含&&的字符串。
我想替换所有左右两边都有空间&&。在

示例字符串

x&& &&&  && && x 

期望输出

^{pr2}$


我的代码

import re
print re.sub(r'\B&&\B','and','x&& &&&  && && x')

我的输出

x&& and&  and and x

请建议我,如何防止&&&and&替换。在


Tags: and字符串代码importre示例空间建议
3条回答

样本输入

s = "x&& &&&  && && x"

可以使用regex的lookbehind和lookhead断言

^{pr2}$

这里正则表达式(?<=\s)&&(?=\s)表示,前面和后面都是空格(\s)。在

(?<;=…)

这是一个肯定的lookbehind断言,它确保匹配的字符串前面有

例如:(?<;=x)abc将在xabc中找到匹配项

(?=…)

这是一个lookahead断言,它确保匹配的字符串后跟

例如:abc(?)?=xyz)只有后面跟“xyz”时才会匹配“abc”。在

您可以使用以下lookaround regex进行搜索:

(?<= )&&(?= )

并替换为and

代码:

^{pr2}$

RegEx Demo

您不需要正则表达式,只要split就可以了。也就是说,根据空格拆分输入字符串,然后迭代列表中的每个项,然后仅当项等于&&时,使其返回and,否则返回特定项。最后用空格连接返回的列表。在

>>> s = 'x&& &&&  && && x'
>>> l = []
>>> for i in s.split():
    if i == '&&':
        l.append('and')
    else:
        l.append(i)


>>> ' '.join(l)
'x&& &&& and and x'

或者

^{pr2}$

相关问题 更多 >