2024-10-06 16:20:00 发布
网友
我有个问题,描述如下: 有一个字符串,我被要求删除所有匹配的子字符串。例如
s="asdf", sub_str=["as", "d"]
结果是"f"
"f"
s="aacc", sub_str=["ac"]
结果是""
""
s="abcf", sub_str=["ac", "b"]
有人能帮我吗?非常感谢你!你知道吗
使用正则表达式。你知道吗
演示:
import re def removeString(sVal, sub_str): pat = re.compile("(" + "|".join(sub_str) + ")") m = pat.search(sVal) while m: sVal = re.sub(pat, "", sVal) m = pat.search(sVal) return sVal #Testing.... s="asdf" sub_str=["as", "d"] print(removeString(s, sub_str)) s="aacc" sub_str=["ac"] print(removeString(s, sub_str)) s="abcf" sub_str=["ac", "b"] print(removeString(s, sub_str))
输出:
f f
如果我理解正确,您需要删除sub_str字符串上的任何字符,最简单的方法是:
sub_str
def remove(s, sub_str): result = s for ss in sub_str: for c in ss: result = result.replace(c, "") return result s = "asdf" sub_str = ["as", "d"] print(remove(s, sub_str))
输出
f
使用re模块,假设您正在重复删除,直到没有发生更改:
re
s="asdf", sub_str=["as", "d"] f1=re.sub('|'.join(sub_str),'',s) f2=re.sub('|'.join(sub_str),'',f1) while f1!=f2: f1=f2 f2=re.sub('|'.join(sub_str),'',f1) f=f2 print(f) #prints 'f'
使用正则表达式。你知道吗
演示:
输出:
如果我理解正确,您需要删除
sub_str
字符串上的任何字符,最简单的方法是:输出
使用
re
模块,假设您正在重复删除,直到没有发生更改:相关问题 更多 >
编程相关推荐