Regex для сравнения двух строк с косой чертой - PullRequest
0 голосов
/ 02 июня 2019

Допустим, у меня есть следующая строка

"qu'ils/elles essayent/essaient"

Следующие строки должны соответствовать

"qu'ils essayent"

"qu'ils/elles essayent/essaient"

"qu'elles essayent/essaient"

"qu'elles essaient"

Мне нужно регулярное выражение, которое я могу использовать для сравнения этих строк. Возможно ли подобное с регулярными выражениями?

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Если возможно несколько комбинаций, вы можете использовать варианты, перечисляющие все опции:

qu'(?:ils/elles|ils|elles) (?:essayent(?:/essaient)?|essaient)$
  • ^ Начало строки
  • qu' Совпадение буквально
  • (?:ils/elles|ils|elles)
  • (?: Группа без захвата
    • essayent Совпадение буквально
    • (?:/essaient)? При желании совпадение /essaient
    • | или - essaient Совпадение буквально
  • ) Закрыть группу без захвата
  • $ Конец строки

Regex demo

0 голосов
/ 02 июня 2019

Да, это возможно. С помощью регулярных выражений вы можете иметь альтернативные элементы, такие как (il|elle), и вы можете иметь дополнительные элементы, такие как (s?). Есть также наборы символов, такие как [iy].

Если у вашего ввода есть / нотация, вам придется разделить слово там и перевести на синтаксис |.

Сопоставление строк, которые все еще включают / будет просто еще одним вариантом:

(ils|elles|ils/elles)

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