Имея закрывающий разделитель такой же, как и открывающий без его захвата - PullRequest
0 голосов
/ 07 мая 2019

У меня есть это регулярное выражение ( Regex101 ):

\[quote((?:\s[a-z]+=["'][[:space:]\w]+["'])+)*\](.*?)\[\/quote\]

Это в основном позволяет мне добавить несколько параметров в теге цитаты BBCode и разрешить два захвата: параметры (которые будут разрезаны/ взорвано и отформатировано) и содержимое тега.Параметры должны быть внутри одинарной или двойной кавычки, чтобы их можно было извлечь.

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

Спасибо, любой совет также по улучшению регулярного выражения принят!

1 Ответ

1 голос
/ 07 мая 2019

Вы должны поместить свою цитату в группу - (['"]) или именованную группу (?<quote>['"]), и позже вы можете добавить обратную ссылку на совпадение группы по индексу \2 или по имени \k<quote>.Обратите внимание, что синтаксис именованной группы может отличаться в зависимости от используемого вами механизма регулярных выражений.

Пример: ^(['"])\w+\1$ будет соответствовать "abc", но не "abc'

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