2015-10-28 3 views
0

У меня есть строка содержит многострочный текст языка, как следоватьКак разбить строку с помощью регулярных выражений в Java

{|en|}Audio Albums{|/en|}{|ar|}الألبومات الصوتية{|/ar|} 

мне нужна функция, чтобы получить текст конкретного языка

getText("en") should returns Audio Albums 

Я думаю, что должны использовать регулярное выражение.

+0

Это звучит, как вы хотите лучше формат String, и использовать соответствующий анализатор. Например, csv (или dsv) или JSON и т. Д. – Tom

+0

Возможный дубликат [Как разбить строку на Java] (http://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java) – Ian

+0

К сожалению, я должен работать с этим форматом, потому что он появился в форме API –

ответ

1

Это должно работать:

Pattern pattern = Pattern.compile("\{\|"+lang+"\\|\\}(.*)\\{\\|/"+lang+"\|\}"); 
Matcher matcher = pattern.matcher(content); 
return matcher.find() ? matcher.group(1) : null; 
+0

Я пробовал \\ {\\ | ar \\ | \\} (. *?) \\ {\\ |/ar \\ | \\} регулярное выражение и возвращает значение –

+1

, вместо этого используйте метод 'find' –

+0

. * в начале и в конце. find(), однако, тоже должен работать ..., спасибо Казимир. –

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