#регулярные_выражения
Есть строка, в которой может быть куча запятых. Нужно найти те из них, которые находятся вне кавычек и заменить на точки, Было: текст1,"текст2","текст,3","текст,,,4",текст 5 Должно быть текст1."текст2"."текст,3"."текст,,,4".текст 5
Ответы
Ответ 1
Попробуйте ,(?=([^"]*"[^"]*")*(?![^"]*")) Тест проходит успешно import org.junit.Test; import static org.junit.Assert.assertEquals; public class TestRegex { @Test public void testRegex() throws Exception { String src = "текст1,\"текст2\",\"текст,3\",\"текст,,,4\",текст 5"; String dest = "текст1.\"текст2\".\"текст,3\".\"текст,,,4\".текст 5"; String regex = ",(?=([^\"]*\"[^\"]*\")*(?![^\"]*\"))"; String replace = "\\."; String result = src.replaceAll(regex, replace); assertEquals(dest, result); } }
Комментариев нет:
Отправить комментарий