RegEx за игнорирование определенных слов - PullRequest
0 голосов
/ 05 июня 2019

Что такое регулярное выражение для игнорирования слов в данном предложении?

Ввод: Online Mobile Order is not working

Вывод: Online Mobile Order

Я пытаюсь получить некоторыеинструмент автоматизации для определения случаев, когда появляется комбинация Online Mobile Order.

В моем текущем случае я использую его следующим образом: (Online Mobile Order | Mobile Online Order | Online Order Mobile)

Это позволяетчтобы пометить эти комбинации независимо от их порядка.

Но иногда мне нужно захватить "Онлайн мобильный заказ не работает", но добавление "не работает" не помечает это предложение для меня.

Я искал подобные ответы здесь, но так как я не в Regex, я не был уверен, что какой-либо ответ соответствует моей проблеме.

Ответы [ 2 ]

2 голосов
/ 05 июня 2019

Это работает, если ваш двигатель поддерживает условные выражения.
По большому счету это PCRE, Perl, Boost.

(?i:(?m:[ ]|^)(?:(?(1)(?!))(Order)|(?(2)(?!))(Mobile)|(?(3)(?!))(Online))){3}

https://regex101.com/r/w7zfyV/1

Расширен

 (?i:
      (?m: [ ] | ^ )
      (?:
           (?(1)(?!))
           ( Order )                     # (1)
        |  (?(2)(?!))
           ( Mobile )                    # (2)
        |  (?(3)(?!))
           ( Online )                    # (3)
      )
 ){3}
0 голосов
/ 05 июня 2019

Это должно работать:

/^.?(Online Mobile Order|Mobile Online Order|Online Order Mobile).?$/gi

.? соответствует нулю или более любого символа до и после этих словосочетаний.Вам также следует использовать флаг i, чтобы он соответствовал любому регистру символов.

Используйте этот онлайн-тестер регулярных выражений для проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...