Regex 如果先出现一组单词,则从数据特定表达式中排除
我在PCRE 8.39上运行MariaDB 10.0.26 比如说,我想排除打印机、墨盒、碳粉套件、工具包或捆绑包 所以我写了这个:Regex 如果先出现一组单词,则从数据特定表达式中排除,regex,mariadb,pcre,Regex,Mariadb,Pcre,我在PCRE 8.39上运行MariaDB 10.0.26 比如说,我想排除打印机、墨盒、碳粉套件、工具包或捆绑包 所以我写了这个: (?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>)) (?打印机|墨盒|碳粉)(?套件|束|套)(?(?=\g)(?!\g)) 指定的小组应该没什么大不了的,我只是在尝试一切 简单地说,我想要这个表
(?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>))
(?打印机|墨盒|碳粉)(?套件|束|套)(?(?=\g)(?!\g))
指定的小组应该没什么大不了的,我只是在尝试一切
简单地说,我想要这个表达:
titleField regexp '(?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>))' to return 0 and not 1.
titleField regexp'(?打印机|墨盒|墨粉)(?套件|束|集)(?(?=\g)(?!\g))”返回0而不是1。
我在这一点上失去了我所做的错事,即使这一定是值得的。
请帮助。您可以使用
^(?!.*(Printer|Cartridge|Toner).*(Kit|Bundle|Set))
如果字符串在换行符(*)以外的0+字符之后的某个位置包含打印机
、墨盒
或碳粉
((打印机|墨盒|碳粉)
),则前瞻(?!*(打印机|碳粉)
)将无法匹配
您可以进行测试。看起来您正在寻找一个负回溯,但由于Iit在pcre中不能具有未知的宽度,请使用一个回溯^(?。*(打印机|墨盒|碳粉)。*(套件|束|集).*(套件|束|集)
Wiktor,请发布一个回复,以便我可以接受它的正确性^(?!*(打印机、墨盒、碳粉)。*(套件、捆绑包、套装))您显然在第二部分复制了两次。谢谢你的帮助,成功了。