gpt4 book ai didi

python - 在之前的任何地方查找具有字母数字字符的非字母数字字符

转载 作者:行者123 更新时间:2023-12-04 14:58:15 24 4
gpt4 key购买 nike

所以我写了一些代码,它需要一个字符串,比如“This$#is% Matrix# %!”并删除所有非字母数字符号,它们周围都有字母数字符号。我设法做到了,但问题在于字符串,它在任何其他符号之前都有非字母数字符号。我想用“非固定长度”回顾来做到这一点,但这是不可能的。有什么解决方法吗?代码和一些例子:

decodedString = re.sub(r"[^0-9,a-z,A-Z](?=.+[0-9,a-z,A-Z])", " ",decodedString)
print("1st regex: " + decodedString)
decodedString = re.sub(r" (?= .+[0-9,a-z,A-Z])", "", decodedString)
print("2nd regex: " + decodedString)

(第二个正则表达式删除连续两次的空格,但它也应该只删除前面有字母数字字符的字符)。

“# @i##U”应该变成“# @i U”,这是唯一一个不起作用的,因为它删除了开头的非字母数字字符(它返回“i #U”)

“This%%is$Matrix%%$script”应该变成“This is Matrix script”

“这$#是%矩阵#%!”应该变成“This is Matrix# %!”

帮助将不胜感激!

最佳答案

你可以使用

re.sub(r'(?<=[^\W_])[\W_]+(?=[^\W_])', ' ', text)

详细信息:

  • (?<=[^\W_]) - 字母或数字应紧靠左侧
  • [\W_]+ - 一个或多个非字母数字
  • (?=[^\W_]) - 字母或数字应紧靠右侧。

参见 regex demo .

参见 Python demo :

import re
texts = ['This%%is$Matrix%%$script', 'This$#is% Matrix# %!']
for text in texts:
print(re.sub(r'(?<=[^\W_])[\W_]+(?=[^\W_])', ' ', text))

输出:

This is Matrix script
This is Matrix# %!

关于python - 在之前的任何地方查找具有字母数字字符的非字母数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67478350/

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