Регулярное выражение для соответствия с тем же типом кавычек - PullRequest
0 голосов
/ 04 июля 2018

Требуется регулярное выражение для соответствия следующим строкам.

["mystring"] -- Match
['mystring'] -- Match
["mystring'] -- No match
['mystring"] -- No match

Я пытаюсь с этим ^\[(\"|\').*(\"|\')]$, но это совпадает со строками, которые не имеют совместимых кавычек.

Спасибо.

1 Ответ

0 голосов
/ 04 июля 2018

Кажется, вам нужно

rx='^\[(['"'"'"])[^'"'"'"]*\1]$';
[[ $s =~ $rx ]] && echo "Matched!" || echo "No match!";

См. онлайн демо

Шаблон ^\[(['"])[^'"]*\1]$ и соответствует:

  • ^ - начало строки
  • \[ - [ char
  • (['"]) - Группа захвата 1: " или '
  • [^'"]* - ноль или более ' или " символов
  • \1 - обратная ссылка на значение, зафиксированное в Группе 1
  • ] - ] char
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...