0
String temp = "77"; // It can be 0 or 100 or any value

// So the pattern will be like this only but number can be change anytime
String inclusion = "100;0;77;200;....;90";

temp が包含に存在するかどうかを確認できるように、正規表現を記述する必要があるため、このような regexPattern を記述しました。

// This is the regular Expression I wrote.
String regexPattern = "(^|.*;)" + temp + "(;.*|$)"; 

では、この正規表現は毎回機能すると思いますか、それともその regexPattern に問題があると思いますか?

if(inclusion.matches(regexPattern)) {

}
4

3 に答える 3

4

正規表現に特殊文字を含めることができる場合は問題が発生する可能性tempがありますが、それが常に整数であれば、メソッドは問題ありません。

ただし、これを行うより簡単な方法は、文字列をセミコロンで分割tempし、結果の配列にあるかどうかを確認することです。

正規表現に固執する場合は、を削除して少し単純化できます.*。以下は、現在の正規表現と同じように機能します。

"(^|;)" + temp + "(;|$)"

編集:おっと、上記は実際には機能しません。私は Java の正規表現に少し慣れておらず、文字列全体が一致する必要があることに気づきませんでした。ありがとう Affe!

于 2012-06-07T23:14:14.260 に答える
3

正規表現は必要ありません:

temp = "77"
String searchPattern = ";" + temp + ";";
String inclusion = ";" + "100;0;77;200;....;90" + ";";
inclusion.indexOf(searchPattern);
于 2012-06-07T23:15:58.827 に答える
1

正規表現を使用しない別の方法

String inclusion2 = ";" + inclusion + ";";  // To ensure that all number are between semicolons
if (inclusion2.indexOf(";" + temp + ";") =! -1) {
   // found
}

もちろん、ここではパターン認識はありません (ワイルドカードなど)

于 2012-06-07T23:17:29.440 に答える