-6

この種の質問が非常に頻繁に提案されることは知っていますが、この正規表現が一致しない理由がわかりません。行頭に「M」があるかどうかを確認したい。
最後に、行末にパスが必要です。これが、startsWith() が私のニーズに合わない理由です。

line = "M      72208  70779 aab   src\com\aut\testproject\TestDomainf1.java";

if (line.matches("^(M?)(.*)$")) {}

私は別の方法も試しました:

Pattern p = Pattern.compile("(M?)");
Matcher m = datePatt.matcher(line);
if (m.matches()) {
    System.out.println("yay!");
}

if (line.matches("(M?)(.*)")) {}

ありがとう

4

1 に答える 1

0

簡単なようです:

    if (line.startsWith("M")) {
        String[] tokens = line.split("\\s+");
        String path = tokens[tokens.length - 1];
    }
于 2013-08-19T13:45:21.970 に答える