我正在使用 Python,我想将给定的字符串与多个子字符串匹配。我试图以两种不同的方式解决这个问题。我的第一个解决方案是将子字符串与如下字符串匹配:
str = "This is a test string from which I want to match multiple substrings"
value = ["test", "match", "multiple", "ring"]
temp = []
temp.extend([x.upper() for x in value if x.lower() in str.lower()])
print(temp)
这导致 temp = ["TEST", "MATCH", "MULTIPLE", "RING"]
然而,这不是我想要的结果。子串应该完全匹配,所以“ring”不应该与“string”匹配。
这就是为什么我试图用正则表达式解决这个问题,像这样:
str = "This is a test string from which I want to match multiple substrings"
value = ["test", "match", "multiple", "ring"]
temp = []
temp.extend([x.upper() for x in value if regex.search(r"\b" + regex.escape(x) + r"\b", str,
regex.IGNORECASE) is not None])
print(temp)
这导致 ["TEST", "MATCH", "MULTIPLE"],正确的解决方案。尽管如此,该解决方案的计算时间太长。我必须对大约 100 万个字符串进行此检查,与使用第一个解决方案所需的 1.5 小时相比,使用正则表达式的解决方案需要数天才能完成。
我想知道是否有办法使第一个解决方案起作用,或者使第二个解决方案运行得更快。提前致谢
编辑:value也可以包含数字,或者像“test1 test2”这样的短语
慕森卡
吃鸡游戏
慕姐4208626
相关分类