如何在使用单词边界时忽略特殊字符

2024-09-30 01:19:42 发布

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

s = '!sopa !sop !sopaa !sopii'

如何在使用单词边界时忽略!

^{pr2}$

输出:'!sopa !sop !sopaa !sopii'


Tags: 单词边界pr2sopsopasopiisopaa
3条回答

搜索非字母数字字符并用空格替换:

re.sub('\W+',' ',s)

' sopa sop sopaa sopii'

好像你想要这样的东西。在

>>> s = '!sopa !sop !sopaa !sopii'
>>> re.sub(r'\B!sop\b', 'sopa', s)
'!sopa sopa !sopaa !sopii'

正则表达式将失败,因为在!符号之前没有\b实际存在。也就是说,从上面看,只有前面有非单词字符的!符号才会匹配。\b匹配单词字符和非单词字符,反之亦然。\B匹配两个单词和两个非单词字符。这里\B实际上存在于空格和!之间,因为它们都是非单词字符。在

(?:^|(?<= ))!sop\b

你可以简单地使用这个。看到了吗演示。在

https://regex101.com/r/bW3aR1/12#python

re.sub(r'(?:^|(?<= ))!sop\b', 'sopa', s)

动态字符串

^{pr2}$

相关问题 更多 >

    热门问题