2015-03-19 3 views
1

test;136;1234567890;Som/;e;Test;test /;123;qwertyuio;dfghjkRegex расщепляется разделителем, если не полукокса до того разделителем

мне нужно разделить его на:

test, 136, 1234567890, Som/;e, Test, test /;123, qwertyuio, dfghjk

Ограничитель ";" но есть случай, когда этот символ также может быть в тексте, поэтому в этом случае я добавляю «/» до «;» в моем коде. Однако я не знаю, как исключить его из поиска регулярных выражений.

Спасибо за помощь!

+2

Отрицательный назад ': '' b спичек "Ъ", что * не * предшествует "а" (<а?!). – Maroun

+1

Что вы делаете, если последний символ в элементе является '/'? – Tomalak

+1

Tomalak not Your business; p – Baku

ответ

2

Используйте негативный взгляд позади:

String parts = str.split("(?<!/);"); 

Если вы хотите, чтобы удовлетворить на срок, который заканчивается с /, вы могли бы избежать, что тоже:

String parts = str.split("(?<!/);|(?<=//);"); 

Если вы хотите, чтобы условия для завершения с помощью «/;» используйте парсер языка АСТ.

+0

nice regex, спасибо! – Baku

0

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

[^((?<!/);|(?<=//);)]* 
+0

Как вы думаете, что ваш матч в регулярном выражении? – Toto

Смежные вопросы