作者qrtt1 (有些事,有時候。。。)
看板java
標題Re: [問題] 分割字串的問題, 求救 >"<
時間Tue May 7 09:56:04 2013
有時候看這類的需求,
不太複雜能用字串切割搞定的卻用了 Regular Expression
用 Regular Expression 寫會很快的,卻被遺忘了 Orz
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Foo {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("
(\"[^\"]+\"),?|([^,]+),?");
String str = "小尚,\"Abby, Sun\",girl,0911-XXX0L9,si,1988/11/20";
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
if (matcher.group(1) != null) {
System.out.println(matcher.group(1));
}
if (matcher.group(2) != null) {
System.out.println(matcher.group(2));
}
}
}
}
用 2 組規則去 match 它,
1. 含 " 的字串,就設它中間的任何字元不會出現 " 看到 ", 就停下
2. 另外正常的規則,就是內部不會再出現 逗號 看到 逗號就停下
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.128.164
※ 編輯: qrtt1 來自: 220.130.128.164 (05/07 09:57)
推 popcorny:推!! 其實可以簡化成(\"[^\"]+\"|[^,]+),? 只要看group1 05/07 10:15
推 popcorny:順便處理csv中的""的問題(\"(?:\"\"|[^\"])+\"|[^,]+),? 05/07 10:29
→ qrtt1:改得太棒了 05/07 10:44
→ swpoker:我只想到要處理\n的問題,還有"''" or '""'等跳脫~re比較好 05/07 14:04