我正在努力让正则表达式在与某个模式匹配的地方工作,只要它不被另一个模式处理。例如
Accessory for MyProduct01 <<< Should be classified as an accessory
MyProduct01 with accessory << Should be classified as a product
所以我需要在我的'accessory'正则表达式中添加一些东西,比如'match'accessory',只要前面的单词不是“with”。你知道吗
我见过一些例子,人们用否定的lookaheads来判断一个词是否在字符串中的任何地方,但我想更具体地说明要否定的词的位置。比如:
(?!with\s)accessory
由于Python不支持无界lookbehinds,因此我认为您必须使用与当前使用的类似的lookahead,但要稍微更改原始模式。你知道吗
在这里,否定的向前看是用来确保“附件”不在单词“with”之后。然后,使用正向前瞻来确保单词“附件”出现在字符串中,如果出于某种原因需要捕获它,则使用组捕获。你知道吗
根据我上面写的方法,您应该使用
search
方法,而不是match
方法。为了使用match
(要求整个搜索字符串与模式匹配),您需要向模式中添加更多内容:只需在正则表达式中使用否定的外观:
相关问题 更多 >
编程相关推荐