正規表現の練習 - CVSでダブルクォーテーションを囲むための条件
2008/06/23
cvs
java
正規表現
Javaです。
正規表現の練習です。
Wikipedia曰く、
CVSでダブルクォーテーションを囲むための条件は、
フィールドがコンマ、ダブルクォート、改行を含む場合は、かならずダブルクォートで囲む。
Comma-Separated Values - Wikipedia
だそうです。この条件にマッチしているか正規表現で調べてみます。
package c;
import java.util.regex.Pattern;
public class Test2 {
public static void main(String[] args) {
Pattern pattern = Pattern.compile(".*[,|\\n|\"].*");
a(pattern, "");
a(pattern, "aaaaaaa");
System.out.println("==============");
a(pattern, "PPPPPPPPPPPPPPP,P");
a(pattern, ",");
a(pattern, "aaaa,aaa");
a(pattern, "aaaa\naaa");
a(pattern, "aaaaaaa\"");
a(pattern, "\"aaaaaaa");
a(pattern, "aaaaaaa\",");
a(pattern, "aaaaaaa\"");
a(pattern, "\"aaaaaaa");
}
static void a(Pattern pattern, String s) {
System.out.println(s + ":" + pattern.matcher(s).matches());
}
}
import java.util.regex.Pattern;
public class Test2 {
public static void main(String[] args) {
Pattern pattern = Pattern.compile(".*[,|\\n|\"].*");
a(pattern, "");
a(pattern, "aaaaaaa");
System.out.println("==============");
a(pattern, "PPPPPPPPPPPPPPP,P");
a(pattern, ",");
a(pattern, "aaaa,aaa");
a(pattern, "aaaa\naaa");
a(pattern, "aaaaaaa\"");
a(pattern, "\"aaaaaaa");
a(pattern, "aaaaaaa\",");
a(pattern, "aaaaaaa\"");
a(pattern, "\"aaaaaaa");
}
static void a(Pattern pattern, String s) {
System.out.println(s + ":" + pattern.matcher(s).matches());
}
}
: