Я задал похожий вопрос вчера, но мне все еще не хватает знаний о некоторых частях регулярного выражения, которым нужно следовать.
В любом случае у меня есть эта строка:
[[{{6^-2}}x{{6^3}}|{{6^-2}}]]
Я хочу соответствоватьследующее регулярное выражение:
\[\[(.*?)\^(.*?)\]\]
Таким образом, в основном желая изолировать, если эта строка имеет [[что-нибудь ^ что-нибудь]]
Это работает до некоторой степени, но это также соответствует, потому что это ^
символ там.Я не хочу, чтобы это совпадало с этим, это выражение не должно совпадать, потому что символ - |
, а не ^
в квадратных скобках.
По сути, он должен игнорировать части внутри {}
РЕДАКТИРОВАТЬ, ЧТОБЫ УЗНАТЬ БОЛЬШЕ:
Пример строки: [[{{hello ^ test}} | {{goodbye}}]] Мой образец: [[(.?) \ ^ (. ?)]] Ожидаемое совпадение: ложно, потому что я хочу сопоставлять ^ только в том случае, если это часть внешней части строки, окруженной [[]], а не в том случае, если она находится внутри {{}}
Пример строки: [[{{hello ^ test}} ^ {{goodbye}}]] Мой шаблон: [[(. ?) \ ^ (. ?)]] Ожидаемое совпадение: Истина, поскольку обе стороны ^ внутри [[]] совпадают, игнорируя то, что находится внутри {{}}
Пример строки: [[{{hello ^ test}} ^ {{goodbye^ test}}]] Мой паттерн: [[(. ?) \ ^ (. ?)]] Ожидаемое совпадение: Истина, потому что опять ^ находится между двумя частями в {{}} и долженигнорировать то, что находится внутри {{}}
Пример строки: [[{{hello ^ test}} | {{goodbye ^ test}}]] Мой шаблон:[[(. ?) \ ^ (. ?)]] Ожидаемое совпадение: Ложь, потому что нет ни одного ^ внутри [[]] только внутри {{}}, которое следует игнорировать
Мой шаблон не работает, потому что он также берет символ ^ внутри {{}} и соответствует любой его стороне, мне нужно, чтобы он совпадал с любой стороной ^, которая заключена в [[]], а не в{{}}
Надеюсь, это имеет смысл ..