Мне нужна помощь с запросом regex conundrum. Я все еще разбираюсь во всем этом - явно не эксперт!Сложное регулярное выражение для разбиения строки
Например. Скажем, у меня сложная строка так:
{something:here}{examp.le:!/?foo|bar}BLAH|{something/else:here}:{and:here\\}(.)}
Прежде всего я хочу, чтобы разбить строку на массив с помощью трубы, так что это эффективно, как:
{something:here}{examp.le:!/?foo|bar}BLAH
и
{something/else:here}:{and:here\\}(.)}
Но обратите внимание, что в фигурных скобках есть труба, чтобы игнорировать ... так что для этого нужно выработать выражение регулярного выражения. Первоначально я использовал indexOf, но поскольку теперь мне приходится учитывать, что трубы находятся в фигурных скобках, это усложняет ситуацию.
И еще не закончилось! Затем мне нужно разделить каждую строку на отдельные части тем, что находится внутри фигурных скобок, а не. Так что я в конечном итоге с 2 массивы, содержащие:
Array1
{something:here}
{examp.le:!/?foo|bar}
BLAH
array2
{something/else:here}
:
{and:here\\}(.)}
я добавил двойной слэш перед первой закрывающей фигурной скобкой, как способ сказать игнорировать это. Но не могу понять регулярное выражение, чтобы сделать это.
Может ли кто-нибудь помочь?
Приветствие stereofrog. Мне нравится подход :) Это почти что я думаю. Кажется, что, когда вы сначала разделяете строку на массив «m», вы не игнорируете фигурные скобки, которым предшествует \\. Любой способ сделать это? – WastedSpace
Измененная строка регулярного выражения отсутствует закрытие ")" – thirtydot
Вы гений. Именно то, что я ищу :) Большое спасибо. С этим справлялся большой головокружение! – WastedSpace