Я бы подумал, что эта проблема невозможна; насколько я знаю, JREQUEX-regex-аромат имеет более рекурсивную интерполяцию или отличную функцию балансировки .NET. Тем не менее, это так, как проблема 12 на regex.alf.nu: сопоставить сбалансированные пары <
и >
. Если в наборах, которые я не получаю, есть какая-то другая модель.Как сопоставить сбалансированные разделители в javascript regex?
Итак ... это возможно? Если да, то как?
ПРИМЕЧАНИЯ:
Я знаю, что это невозможно для истинных регулярных выражений, но основываясь на вызов, кажется, что это должно быть возможно в аромате JavaScript (который, по крайней мере достаточно нерегулярный иметь обратные_связи). Я просто не знаю ни одной функции, которая позволила бы им это сделать.
Никакой другой код - форма позволяет вводить одно регулярное выражение, которое оценивается по тестовым строкам на странице. Я мог бы попытаться взломать страницу, чтобы вырваться из регулярного выражения и в сырой JS, я полагаю, но это, похоже, не в духе этой проблемы.
С тех пор как Дэвид спросил, вот тестовые строки. Более длинные были усечены с количеством символов, но проблема называется «Баланс», а те, которые являются полными, безусловно подтверждают гипотезу о том, что столбец «match» имеет сбалансированные пары <
и >
, в то время как столбец «нет» ,
Match all of these…
<<<<<>><<>>><<... [62 chars]
<<<<<>><>><<><... [110 chars]
<<<<<>><>><>><... [102 chars]
<<<<<>><>>>><<... [88 chars]
<<<<<>>><<<>><... [58 chars]
<<<<<>>><<><>>... [152 chars]
<<<<<>>><<>><<... [42 chars]
<<<<<>>><>><<<>>>><<>>
<<<<<>>>><<<<>... [102 chars]
<<<<<>>>><<<><... [30 chars]
<<<<<>>>><><<<... [66 chars]
<<<<<>>>><><<<... [124 chars]
<<<<<>>>><>><<>>
<<<<><<>>><<<>... [34 chars]
<<<<>><<<>>>><... [92 chars]
<<<<>>><<<<>><>><<<>>>>>
<<<<>>><<<><<>>><><<>>>><<>>
<<<<>>><<><<<>... [84 chars]
<<<<>>>><<<><<... [52 chars]
<<<><<<>>>><<<... [50 chars]
<<<><<><>>>>
<<<><>><<<>>>>
<<<>><<<><<>>>... [44 chars]
<<<>><><<<><>>... [48 chars]
<<<>>><<><<<<>>>><<><<<>>>>>
<<><<<<>><>>>>... [60 chars]
<<>>
<<>><<<<<>>>>>... [54 chars]
<<>><<<<>><<<>... [74 chars]
<>
<><>
and none of these…
<
<<<<<<>>><<><>>>>>><<>
<<<<<>>><>>><<<>>>><>>
<<<<<>>>>>>
<<<<>><<<<<><<>><><<<<
<<<>><<<<><><><><
<<<>>>><><<<><>
<<><<<<><<><<>>><<
<<><<<>>>>><<
<<>>><<<>>
<><<<>><<>>><<>
<><<>>><<<><>><<<>>><<>>>><
<><<>>><><<<>
<><>><>>><><<<... [36 chars]
<>><><<<><>
<>>>>>><<<>><<>><><
<>>>>>>><<<
>
><
><<<>><><<<><<
><<<>>>><><<<<><>>><<><><<
><<><<<<><<<<>>>><
><><><<<>>>>>
><><>>><>><>
><><>>>><>>>>>>><>>><>>
><>><<<<<>>
><>><><><<>><<>>><<
><>>><>>>>><<><<<><>><>><<<
>><<<><<<<<<><>><<
>><>>><<<><>>><><<>><<><><<
>>>><>><>>>><>>><>><><
>>>>><<<>>>
Разрешено ли вам использовать другой код JavaScript? Если это так, просто реализуйте стек совпадений «начать», а затем разматывайте их, когда найдете совпадения «конец». –
Язык, который вы описываете, не является регулярным. –
Как насчет того, чтобы вы вставляли в свой вопрос набор [matche these] & [but not these]? –