2015-11-10 2 views
-2

Как говорится в названии, я хочу разбить строку с использованием java regex на основе точки, но только если точка отображается между алфавитами.Разбиение строки на точку (.), За исключением случаев, когда она отображается во фракции с использованием регулярного выражения в Java

Допустим, строка:

System.out.println(5.55); 

мне нужен выход в

System 
out 
println(5.55); 
+0

Подсказка: String.split() принимает регулярное выражение, и '\ D' любого нечисленного буквального – Vladimir

+0

Это довольно просто достичь. Вам не потребуется помощь, если вы посмотрите на [документацию] (http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html). – Mena

+0

Да, это просто ... но я был немного смущен функциями lookahead и lookbehind. Вы уже прочитали документацию b4, задав вопрос. В любом случае спасибо за ур комментарий :) –

ответ

2

Просто используйте предпросмотр и 'назад', как этот

System.out.println(Arrays.toString("System.out.println(5.55);".split("(?<=\\D)\\.(?=\\D)"))); 

Для получения дополнительной справки, что они на самом деле сделать вас может читать через this

+0

Спасибо, что так много .... Я делал это неправильно. –

2

Взгляд и взгляд на письма, вероятно, то, что вы хотите. DEMO

(?<=[a-zA-Z])\.(?=[a-zA-Z]) 

String content = "asdf.qweflkjasdf.qweflasdfasfd55.523"; 
Pattern p = Pattern.compile("(?<=[a-zA-Z])\\.(?=[a-zA-Z])");   
System.out.println(p.matcher(content).replaceAll("\n")); 

OUTPUT: 
asdf 
qweflkjasdf 
qweflasdfasfd55.523 

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

  • Нет связанных вопросов^_^