PHP regex глюк обратной ссылки

Желание проанализировать пользовательские теги модератора в сообщениях mybb.

[mod = «Nomad»] Curabitur eu ultricies nunc [/ mod].
Donec et luctus nisi, imperdiet ipsum.
[mod = «Nomad»] Morbi feugiat tellus lectus, auctor ligula elementum ac [/ mod].

Следующее регулярное выражение PHP ничего не соответствует:

#\[mod=(['\"])(.*?)\1](.*?)\[/mod]#

Хотя этот работает (обратите внимание на добавленный g в обратном ссылке)

#\[mod=(['\"])(.*?)\g1](.*?)\[/mod]#

Как и этот (использование именованных шаблонов кажется немного излишним)

#\[mod=(?P<quot>['\"])(.*?)(?P=quot)](.*?)\[/mod]#

edit: это регулярное выражение для получения части внутри [mod] [/ mod], чтобы я мог стилизовать ее или скрыть от обычных пользователей.

Это глюк ноу-хау или я что-то упустил?

Спасибо

0

Решение

Здесь у вас есть то, что вы, вероятно, хотите:

\[mod=(['"])(.*?)\1\](.*?)\[\/mod\]

Демо-версия: https://regex101.com/r/zB5bX3/2

0

Другие решения

Других решений пока нет …