2014-01-07 2 views
1
java.util.regex.Pattern p = java.util.regex.Pattern.compile(""); 
for (String s :p.split("abc", -1)) { 
    System.out.printf("%d: %s\n", ++i, s); 
} 

возвращается:ICU Regex шаблон для пустой Java шаблона

1: 
2: a 
3: b 
4: c 
5: 

ОИТ Regex Pattern.compile() терпит неудачу с пустой строкой шаблона - кто-нибудь знает шаблон регулярного выражения и/или флаги, как регулярное выражение Java?

Что странно в том, что Android использует ICU Regex для реализации java.util.regex, но этот тест преуспевает, и я не могу найти специальную обработку для пустого паттерна.

ответ

1

Вы можете использовать эквивалентное регулярное выражение, а не так как ICU отказывается пустые шаблоны:

".{0}" 

код

int i=0; 
java.util.regex.Pattern p = java.util.regex.Pattern.compile(".{0}"); 
for (String s : p.split("abc", -1)) { 
    System.out.printf("%d: %s\n", ++i, s); 
} 

Выходные

1: 
2: a 
3: b 
4: c 
5: 
+0

Отлично, спасибо! – tball

+0

@tball добро пожаловать;) – Stephan

+0

Я вижу из вашего профиля, что вы и развитие Java и iOS. Этот вопрос предназначен для проекта [J2ObjC] (https://code.google.com/p/j2objc/), который может показаться вам интересным. – tball

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