正規表現の練習 - CVSでダブルクォーテーションを囲むための条件 2008/06/23

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());
}

}

: