如何删除字符串中除特定令牌外的所有&号



我需要删除字符串中除'd&g'或'black&jones'之类的符号以外的所有与符号。为此,必须使用正则表达式。我用这个模式r'[a-zA-Z]&[a-zA-Z]',但不工作。如有任何帮助或指导,将不胜感激。

假设您想替换除被英文字母包围的与符号以外的所有与符号,则答案如下:

import re
test_str = "d&g &this &mostafa & and h&m and& mostafa&mostafa &this this& d&g"
print(re.sub(r"&(?![a-zA-Z])|(?<![a-zA-Z])&", "", test_str))
# d&g this mostafa  and h&m and mostafa&mostafa this this d&g

这里&(?![a-zA-Z])|(?<![a-zA-Z])&匹配前面没有英文字母或后面没有英文字母的&号:(?!...)-负向前看,(?<!...)-负向后看。

如果你想扩展与号周围允许的符号列表-在两个符号类中添加这些符号。例如,如果您想要允许使用数字,请使用[a-zA-Z0-9].

找到合适的正则表达式模式。以下是完整的python代码:

import re
text = "d&g &this &mostafa & and h&m and& mostafa&mostafa &this this& d&g"
pattern = r"^&|&$|[^a-z]+&|&[^a-z]+"
cleaned_text = re.sub(pattern, " ", text)
print(cleaned_text)

相关内容

  • 没有找到相关文章

最新更新