文字列変数が大文字と小文字を区別しないと見なされ、Access、accessなどのすべての単語をそのようなもののWINDOWSに置き換えるように、Javaで変数の正規表現を作成するのを手伝ってくれる人はいますか?
これはコードです:
$html=html.replaceAll(label, "WINDOWS");
labelは文字列変数であることに注意してください。
「大文字と小文字を区別しない」スイッチを正規表現に追加するだけです。
html.replaceAll("(?i)"+label, "WINDOWS");
注:ラベルに特別な正規表現の意味を持つ文字を含めることができる場合(たとえば、labelが".*"
であった場合)、ラベルをプレーンテキスト(つまり、正規表現ではない)として扱いたい場合は、ラベルの前後に正規表現の引用符を追加します。
html.replaceAll("(?i)\\Q" + label + "\\E", "WINDOWS");
また
html.replaceAll("(?i)" + Pattern.quote(label), "WINDOWS");
String.replaceAllは、マッチャーを作成してそのreplaceAllメソッドを呼び出すのと同じであるため、次のように大文字と小文字を区別しないようにすることができます。
html = Pattern.compile(label, Pattern.CASE_INSENSITIVE).matcher(html).replaceAll("WINDOWS");
参照:String.replaceAllおよび Pattern.compile JavaDocs
パターンとマッチャーを使用するだけです。これがコードです
Pattern p = Pattern.compile("Your word", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("String containing words");
String result = m.replaceAll("Replacement word");
パターンでは大文字と小文字が区別されないため、パターンの使用は簡単です。
詳細については、を参照してください。
ラベルを次のようなものにしたいかどうかはわかりませんが[Aa][cC][cC][eE][sS][sS]
または代わりに
html = Pattern.compile(lable, Pattern.CASE_INSENSITIVE)
.matcher(html).replaceAll("WINDOWS");