首页 > 解决方案 > 使用正则表达式删除单词中的特殊字符

问题描述

我有这样的文字: some text 'elle m'a dit ce qu'elle voulait.<break></break>' some text

我希望' 当它不在单词之间时被忽略

想要的结果: some text elle m'a dit ce qu'elle voulait.<break></break> some text

我想出了这个正则表达式代码:\b(')\b,但它正在做相反的工作,我得到了输出:

some text 'elle ma dit ce quelle voulait.<break></break>' some text

标签: pythonregex

解决方案


您可以使用

r"\B'|'\B"

请参阅正则表达式演示。它匹配'两端没有被单词边界包围的 a。

详情

  • \B- 一个不是单词边界位置的位置(因为下一个模式是',这\B意味着在当前位置的左侧必须有字符串的开头或任何非单词字符
  • '- 一个直撇号
  • |- 或者
  • '- 一个撇号
  • \B- 紧随其后的是非单词 char 或字符串末尾。

请参阅Python 演示

import re
text = "some text 'elle m'a dit ce qu'elle voulait.<break></break>' some text"
print( re.sub(r"\B'|'\B", '', text) )
# => some text elle m'a dit ce qu'elle voulait.<break></break> some text

推荐阅读