#java #regex
#java #регулярное выражение
Вопрос:
У меня есть строка csv, подобная
"abc, java, stackoverflow , stack exchange , test"
Могу ли я использовать regex для удаления пробела вокруг запятых, чтобы получить строку типа
"abc,java,stackoverflow,stack exchange,test"
Комментарии:
1. Как насчет
a , "b , b" , c
?2. К сожалению, «b , b» будет обрабатываться как два разных значения, но меня это устраивает 🙂
3. хорошо, тогда подойдет решение Криса.
Ответ №1:
str = str.replaceAll("\s*,\s*", ",");
Комментарии:
1. @Rnet:
s
(который должен быть записан как\s
в строковом литерале Java) соответствует одному символу пробела.*
соответствует нулю или более «вещи» перед ним. Итак,s*
означает ноль или более пробельных символов. С остальным вы можете разобраться. 😉2. @Chris Jester-Young: Спасибо 🙂
3. 1 Черт. Я думал, почему
replace()
не работает. Теперь я вижу из документов, чтоreplaceAll()
поддерживает регулярные выражения. Спасибо!4. @asgs: если бы вы использовали replace() для замены пробела, это также заменило бы пробел между значениями.
5. @Rnet на самом деле, я использовал то же самое регулярное выражение внутри
replace()
.