1

Java Stringクラスには、現在の文字列が指定された正規表現と一致するかどうかをチェックするmatches(String regex)メソッドがあります。しかし、現在の文字列の部分文字列が正規表現と一致するかどうかをどのように見つけることができますか?

Javaを使用してgrepの動作を模倣しようとしています。grepは行を取り、行の任意の場所で指定された正規表現に一致するすべての行を出力します。matchsメソッドは、行全体(つまり文字列)が正規表現に一致し、その中の部分文字列には一致しないかどうかをチェックするため、Javaでこれを行う方法がわかりません。

4

3 に答える 3

6

Matcher#find()メソッドはあなたが望むことをします

于 2012-04-17T20:36:24.453 に答える
2

ColinDが言ったように、最善の策は、文字列を一度に1行ずつ読み取り、両端に気が進まないワイルドカードを使用して正規表現を実行することです。

于 2012-04-17T20:44:06.463 に答える
1

正規表現を変更して、文字列の前後にワイルドカードを使用できるようにすることができます。

したがって、代わりに:

Pattern regex = Pattern.compile("hello\\sworld")

あなたが持っている

Pattern regex = Pattern.compile(".*hello\\sworld.*);
于 2012-04-17T20:42:07.973 に答える