import regex
product_detail = "yyy target1 target2 xxx".lower()
p1 = r"\btarget1\b|\btarget1 target2\b"
p2 = r"\btarget2\b|\btarget1 target2\b"
for pattern in [p1, p2]:
matches = regex.findall(pattern, product_detail, overlapped=True)
print(matches)
为什么来自p1的匹配只给予['target1']
作为输出,而不提供'target1 target2'
但是来自P2的匹配可以成功地给予['target1 target2', 'target2']
作为输出。
另外,如果你能提供一个修复,我如何概括它?我有一个10000个目标单词的列表,它不会是可行的硬编码。
1条答案
按热度按时间x4shl7ld1#
下面是一个例子,说明了我对构建一个分隔公共前缀的模式列表的看法:
输出: