2015-04-14 7 views
0

Я хочу создать Splitter (guava) и разбить строку на основе шаблона регулярных выражений. Разделение должно проводиться либо на [, либо на знаке ... И что, если я хочу включить, например, 10 символов для разделения? Должен ли я отделить каждый из них в | в регулярном выражении?Как создать шаблон регулярного выражения для разделения на определенные символы?

Но следующее не работает: Pattern.compile("[|..")

Тест: test[me..once more должно привести к

test 
me 
once more 
+0

'..' _не характер, но строка. Кроме того, поскольку точка и скобка имеют специальную семантику, попробуйте избежать их для литерала: '' \\ [| \\. \\. "' – Thomas

+0

'Pattern.compile (Pattern.quote (" [| .. "));' – Maroun

+0

@MarounMaroun, который также цитирует трубу, чего он не хочет. – Thomas

ответ

4

Вы можете использовать following regex разделить:

(?:\[|\.\.) 

В Java, вы должны избегать \ s.

String str = "test[me..once more"; 
String pattern = "(?:\\[|\\.\\.)"; 
String[] parts = str.split(pattern); 
+0

Это правильный ответ, так как он также использует неназванную группу. – Seelenvirtuose

0

Ваш шаблон не работает, потому что [ и . являются управляющими символами в регулярных выражениях.

попытаться избежать их, как Pattern.compile("\\[|\\.\\.") (помните, \ также должен быть экранирован)

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