2

パターン「String_OneOrMoreDigits」を見つけるためにJava正規表現ライブラリを使用しています。たとえば、「linenumber_1」、「linenumber_31」、「linenumber_456」などです。タイプ「linenumber_2」または「linenumber_44」の文字列を取得すると仮定して、次のパターンを試しています。ただし、「linenumber_2」タイプの文字列を取得しただけで、最後に複数の数値と一致しません。そのような文字列を一致させるにはどうすればよいですか?

Pattern pattern = Pattern.compile("(linenumber_[0-9])|(linenumber_[0-9][0-9])");

4

3 に答える 3

6

変更の必要はありません。:で「1つ以上の」修飾子を使用するだけ[0-9]です。

Pattern pattern = Pattern.compile("linenumber_[0-9]+");

これは、「linenumber_1」と「linenumber_44」と「linenumber_12345984」に一致します。1桁または2桁のみを一致させたい場合は、許可される桁数をより明確にすることで、それを行うことができます。

Pattern pattern = Pattern.compile("linenumber_[0-9]{1,2}");
于 2012-11-13T07:43:11.760 に答える
2

代わりに、特定の桁数が必要な場合に追加します

Pattern pattern = Pattern.compile("linenumber_[0-9]{1,2}");

あなたも使うことができます

Pattern pattern = Pattern.compile("linenumber_[0-9]{1|4|8}");

これは、1 桁、4 桁、または 8 桁のいずれかが必要であることを指定します。クラウダーが言ったように、

Pattern pattern = Pattern.compile("linenumber_[0-9]+");

任意の桁数に一致します。

于 2012-11-13T08:06:12.453 に答える
1

次のものも使用できます。

Pattern pattern = Pattern.compile("linenumber_\d+");

大文字と小文字を区別しない一致が必要な場合は、(?i)次のように先頭に追加します。

Pattern pattern = Pattern.compile("(?i)linenumber_\d+");

(?i)正規表現エンジンが大文字と小文字を区別しない一致を実行できるようにします。 \dからの任意の数字と一致します0 to 9

于 2012-11-13T11:59:32.590 に答える