У меня есть это регулярное выражение:
{link=([^|{}]+)|([^|{}]+)|([^|{}]+)}
это прекрасно работает и возвращает мне три группы между символами канала, т.е. this
, that
и blah
из {link=this|that|blah}
. До тех пор, пока в тексте нет пробела или двух фигурных скобок (поскольку они являются зарезервированными словами в моем конструкторе тегов.)
Однако я все еще получаю совпадение, если я проверяю строку 'fsdjklrwenklw' или что-нибудь в этом отношении, я думаю, это потому, что не имеет значения, совпадает ли * {link=
"или нет, так как любая строка будет сопоставлено в самой первой обратной ссылке.
Возможно, ужасно написано, кто-нибудь может мне помочь?
Я должен возвращать ссылки только для строк, которые начинаются с "{link=
" и заканчиваются на "}
".
PS. Я пробовал простой префикс и суффикс \A \z
, это не помогает.
Спасибо.