如果一组单词首先出现,则从数据中排除特定表达式
exclude from data specific expressions if a group of words occure first
我是 运行 在 PCRE 8.39 上的 MariaDB 10.0.26 中。
比如说,我想排除打印机、墨盒、碳粉套装、套件或捆绑包。
所以我写了这个:
(?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>))
命名组应该无关紧要,我只是尝试了一切。
简单的说,我要这个表情:
titleField regexp '(?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>))' to return 0 and not 1.
此时我已经失去了我做错的地方,尽管这一定是 FACEPALM(!~~!) 值得的。
请帮忙
您可以使用
^(?!.*(Printer|Cartridge|Toner).*(Kit|Bundle|Set))
如果字符串在 0+ 个字符后的某处包含 Printer
、Cartridge
或 Toner
((Printer|Cartridge|Toner)
),则前瞻 (?!.*(Printer|Cartridge|Toner).*(Kit|Bundle|Set))
将无法匹配比换行符 (.*
).
您可以测试 the regex here。
我是 运行 在 PCRE 8.39 上的 MariaDB 10.0.26 中。
比如说,我想排除打印机、墨盒、碳粉套装、套件或捆绑包。
所以我写了这个:
(?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>))
命名组应该无关紧要,我只是尝试了一切。
简单的说,我要这个表情:
titleField regexp '(?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>))' to return 0 and not 1.
此时我已经失去了我做错的地方,尽管这一定是 FACEPALM(!~~!) 值得的。 请帮忙
您可以使用
^(?!.*(Printer|Cartridge|Toner).*(Kit|Bundle|Set))
如果字符串在 0+ 个字符后的某处包含 Printer
、Cartridge
或 Toner
((Printer|Cartridge|Toner)
),则前瞻 (?!.*(Printer|Cartridge|Toner).*(Kit|Bundle|Set))
将无法匹配比换行符 (.*
).
您可以测试 the regex here。