1

パターンと行を一致させるプログラムを作成する必要があります。そのパターンは正規表現または通常のパターンである可能性があります

例:
パターンが「tiger」の場合、「tiger」のみを含む行が一致
する必要があります。パターンが「^t」の場合、「t」で始まる行が一致する必要があります

私はこれを行いました:

Blockquote パターンと Matcher クラス

問題は、 を使用するMatcher.find()と、すべての正規表現が一致しますが、完全なパターンを指定すると一致しないことです。

を使用するmatches()と、正規表現ではなく、完全なパターンのみが一致します。

私のコード:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class MatchesLooking 
{

    private static final String REGEX = "^f";
    private static final String INPUT =
    "fooooooooooooooooo";
    private static Pattern pattern;
    private static Matcher matcher;

    public static void main(String[] args) 
    {

        // Initialize
        pattern = Pattern.compile(REGEX);
        matcher = pattern.matcher(INPUT);

        System.out.println("Current REGEX is: "
                       + REGEX);
        System.out.println("Current INPUT is: "
                       + INPUT);

        System.out.println("find(): "
        + matcher.find());
        System.out.println("matches(): "
        + matcher.matches());
    }
}
4

2 に答える 2

1

matchesの正規表現が指定された^t場合、文字列がt.

一致させるには、残りの文字列も含める必要があります。を追加すること.*でこれを行うことができます。これは、0 個以上のワイルドカードを意味します。

"^t.*"

また、 を使用する場合、^(および同等の$) はオプションですmatches

お役に立てば幸いです。あなたが何に苦しんでいるのか完全にはわかりません。お気軽に明確にしてください。

于 2013-10-01T08:06:24.063 に答える