我正在寻找一种解决方案,将一个字符串与一组通配符字符串进行匹配。例如:
我已经开始在Python中编写一个trie实现,可以处理通配符,但我需要解决一些特殊情况。尽管如此,我很想听听你的意见:你会怎么解决这个问题?有没有Python库可以让我更快地解决这个问题? 到目前为止,一些见解如下:
>>> match("ab", ["a*", "b*", "*", "c", "*b"])
["a*", "*", "*b"]
输出的顺序并不重要。
我将会有大约10^4个通配符字符串需要匹配,并且我将会进行大约10^9次匹配调用。这意味着我可能需要像这样重新编写我的代码:
>>> matcher = prepare(["a*", "b*", "*", "c", "*b"]
>>> for line in lines: yield matcher.match("ab")
["a*", "*", "*b"]
我已经开始在Python中编写一个trie实现,可以处理通配符,但我需要解决一些特殊情况。尽管如此,我很想听听你的意见:你会怎么解决这个问题?有没有Python库可以让我更快地解决这个问题? 到目前为止,一些见解如下:
- 使用命名(Python,re)正则表达式对我没有帮助,因为它们只会返回一个匹配项。
- pyparsing似乎是一个很棒的库,但文档稀少,而且据我所知,不支持匹配多个模式。
10**5
个字符串和10**4
个模式,需要为每个单独的字符串返回匹配的模式列表,还是仅需要为每个字符串返回一个匹配(如果有的话)的模式就足够了? - jfs