Здравствуй сообщество, вопрос прост почему данная функция отрабатывает не так как нужно. Вроде бы должно всё игнорировать так как я добавил \s. Что само странно работает через одну строку то есть частично верно. Помогите кто что знает лучше чем я, так как в регулярных выражениях дилетант.
public static String convert1(String input) {
return input.replaceAll(";[\\w\\s]*;", " ==> ");
}
input = "Login;Name;Email
ivanov;Ivan Ivanov;ivanov@mail.ru
петров;Петр Петров;petrov@google.com
obama;Barack Obama;obama@google.com
bush;Джордж Буш;bush@mail.ru"
Вот вывод после обработки:
Вы забыли "включить" поддержку всего Юникода для \w и \s с помощью (?U) (опция Pattern.UNICODE_CHARACTER_CLASS):
return input.replaceAll("(?U);[\\w\\s]*;", " ==> ");
^^^^
См. демо онлайн:
public static String convert1(String input) {
return input.replaceAll("(?U);[\\w\\s]*;", " ==> ");
}
public static void main (String[] args) throws java.lang.Exception
{
String input = "Login;Name;Email\n"+
"ivanov;Ivan Ivanov;ivanov@mail.ru\n"+
"петров;Петр Петров;petrov@google.com\n"+
"obama;Barack Obama;obama@google.com\n"+
"bush;Джордж Буш;bush@mail.ru";
System.out.println(convert1(input));
}
Результат:
Login ==> Email
ivanov ==> ivanov@mail.ru
петров ==> petrov@google.com
obama ==> obama@google.com
bush ==> bush@mail.ru
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости