Регулярное выражение, чтобы разделить жадный, но сохранить разделенный токен? - PullRequest
2 голосов
/ 12 ноября 2011

У меня есть строка типа:

{A}{B}={C}{D}<{E}{F}<=

Я хочу разделить эту строку с помощью регулярного выражения, чтобы получить что-то вроде:

1: {A}{B}=
2: {C}{D}<
3: {E}{F}<=     

Яв настоящее время разбивает строку, используя (?<=\>)|(?<=\<\=)|(?<=\>\=)|(?<=\=)|(?<=\<)|(?<=!\=), но это не дает желаемого результата, как вы можете видеть:

1: {A}{B}=
2: {C}{D}<
3: {E}{F}<
4: =

Что мне нужно изменить в регулярном выражении, чтобы получить искомый результат?

1 Ответ

2 голосов
/ 12 ноября 2011

Попробуйте вместо этого:

(?<=<=)|(?<=>=)|(?<=!=)|(?<==(?!=))|(?<=<(?!=))|(?<=>(?!=))

Или используйте совпадение вместо разбиения с помощью этого более простого регулярного выражения:

.*?(?:<=|>=|!=|=|<|>)
...