В настоящее время я пытаюсь объединить строку в многострочную строку. Регулярное выражение должно выбрать пробелы, в которых должно быть до 13 символов.Разбиение строки на пробелы
Проблема в том, что количество символов 13 не сбрасывается после предыдущего выбранного пробела. Итак, после первых 13 символов регулярное выражение выбирает каждое пустое пространство.
Я использую следующее регулярное выражение с positive look-behind
из 13 символов:
(?<=.{13})
(есть пробелы в конце)
Вы можете проверить регулярное выражение here и следующий код:
import java.util.ArrayList;
public class HelloWorld{
public static void main(String []args){
String str = "This is a test. The app should break this string in substring on whitespaces after 13 characters";
for (String string : str.split("(?<=.{13}) ")) {
System.out.println(string);
}
}
}
выходной сигнал этого кода выглядит следующим образом:
Это тест.
приложение
должны
перерыв
это
строка
в
подстроки
на
непечатаемых
после
символов
Но это должно быть:
Это тест.
приложение должна
перерыв этой строка
в подстроках на
непечатаемых после
13 символов
О, спасибо. Я не думал о том, чтобы сопоставить строки и использовать соответствующие группы, подобные этому. Я всегда буду бороться с соответствующими группами, когда я хочу их выбрать. Я удалил свой предыдущий комментарий, потому что я слишком быстро прочитал ваш ответ. – Seblor
Хорошо, я думаю, вы не ожидали, что все значение соответствия может быть повторно привязано к '$ 0' в шаблоне замены. –
Точно. Обычно я использую регулярное выражение только для сопоставления почтовых адресов, чисел и т. Д. (А не с Java). – Seblor