Исключите слово из регулярного выражения, используя массовое редактирование PHP и YITH
Я новичок в PHP и Regex, я пытаюсь исключить слово из поиска, используя Yith Bulk Editing Woocommerce и WordPress.
Теперь я заплатил за плагин, но поддержка очень медленная и совсем не помогает.
Когда я использую регулярное выражение для поиска продуктов, у меня их более 10000.
Например, у меня есть крепежные шестигранные гайки, более 3500 из них. Я хотел бы исключить все шестигранные гайки, в названии которых есть нейлон. поэтому я использовал следующее в поиске
Hex Nut.?+(?!Nylon).?+$
но это не дает мне никаких продуктов, я наткнулся на веб-сайт https://regex101.com/ , который поможет вам отладить ваше регулярное выражение, но для тех, кто сейчас к нему, это не работает.
Я пробовал следующее
Hex Nut.?+(?!Nylon) - No Results
Hex Nut.?+(?:Nylon) - No Results
Hex Nut.?+(?:Nylon) - No Results
Hex Nut^/(?!Nylon) - No Results
Платформы следующие
Массовое редактирование продуктов YITH WooCommerce — версия 1.2.29
Woocommerce — версия 4.9.0
WordPress — версия 5.6
1 ответ
Ответ
^Hex Nut(?!.*\bNylon\b).*$
см. https://regex101.com/r/0H1Tig/1
Мне нужно было использовать границу слова, чтобы заставить ее работать, насколько я могу судить, это то же самое, что и двойные кавычки.
\b Соответствует, не потребляя никаких символов, непосредственно между символом, совпадающим с \w, и символом, не совпадающим с \w (в любом порядке). Его нельзя использовать для отделения не слов от слов.