如果特殊符号/#$%^&*@0123456789
仅通过列表中没有的字符或符号彼此分开,如何删除它们。例如:
H8e%&l6&%l@8095o a@/9^65$n228d w%e60$$#&9l3@/c6o5m3e --> Hello and welcome
. #$%#^ --> . #$%#^
,. a3%2%1/3$s*0. d8^! -->,. as. d!
I1^/0^^@9t #$%% i/@4#s 11P17/9$M 5^&* a^$45$5$0n&##^4d 6^&&* I $%^$%^ a8@@94%3*m t3120i36&^1r2&^##0e&^d ---> It #$%% is 11PM 5^&* and 6^&&* I $%^$%^ am tired
我知道简单的string.replace在这里不起作用。我试过这样的事情,但它也没有工作:
def _correct_message(message):
f = re.match(r'[a-zA-Z][/#$%^&*@0123456789][a-zA-Z]', message)
if f is not None:
message = re.sub('[/#$%^&*@0123456789]', '', message)
答案 0 :(得分:1)
你可以试试这个:
import re
s = "H8e%&l6&%l@8095o a@/9^65$n228d w%e60$$#&9l3@/c6o5m3e"
s1 = "I1^/0^^@9t #$%% i/@4#s 11P17/9$M 5^&* a^$45$5$0n&##^4d 6^&&* I $%^$%^ a8@@94%3*m t3120i36&^1r2&^##0e&^d"
final_string = re.sub("(?<=[a-zA-Z\.\!])[/#\$\%\^\&\*\@0123456789]+(?=[a-zA-Z\.\!])", '', s)
print(final_string)
new_final_string = re.sub("(?<=[a-zA-Z\.\!])[/#\$\%\^\&\*\@0123456789]+(?=[a-zA-Z\.\!])", '', s1)
print(new_final_string)
print(re.sub("(?<=[a-zA-Z\.\!])[/#\$\%\^\&\*\@0123456789]+(?=[a-zA-Z\.\!])", '', ',. a3%2%1/3$s*0. d8^!'))
输出:
'Hello and welcome'
It #$%% is 11PM 5^&* and 6^&&* I $%^$%^ am tired
,. as. d!
答案 1 :(得分:0)
我知道这不是你提出的问题,但可以根据.islapha()进行第一次验证,例如:
def validate(s):
text=''
for i in s:
if i.isalpha():
text+=i
else:
pass
return text