文字列を Java という単語のサブパートではない条件に置き換えます
必要以上に文字列を置換します。 例えば
String input = "The blue house Theatres";
input = input.replace("the", "AAA");
出力は次のようになります:
"AAA blue house AAAatres"
単語のサブパートであることを変更したくありません。
------------に答える------------
最初に、replace(literal, replace) の代わりに replaceAll(regex, replace) を使用してみてください。後者はリテラルでのみ機能するためです。つまり、式を使用することはできませんが、前者は正規表現を使用して一致を見つけます。
次の通常の e 式では、単語の境界を使用する必要があります。 \b\b \b は単語の境界を示します。
最後に、大文字と小文字を区別しない置換を行う場合は、式 (\b[tT]he\b など) で可能なケースを処理するか、式を大文字と小文字を区別しないモードに変更する必要があります。先頭に (?i) を付けて小文字にします。つまり、(?i)\bthe\b です。 [tT]he という表現は THE と一致しないことに注意してください。大文字と小文字を区別しないので、要件に応じてどちらかを選択する必要があります。
input = input.replaceAll("(?i)\\bthe\\b", "AAA"); を取得するすべてを使用します。
編集:
質問に対するあなたのコメントによると、単語の境界を使用するのではなく、前後の文字を探すだけです。これは、否定検索式を使用して実現できます。
p. (?i)(?
上記の表現は、!The, the, THE? に一致します。等ただし、シアターやエーテルなどは除きます。 if の場合、一致の前に ((?ない 必要があり、その後に
((?![ a-z ])).
------------に答える------------
単語境界で正規表現を使用する \b:
String input = "The blue house Theatres";
input.replaceAll("\bThe\b", "AAA");
タグ:
関連記事:
java: GSM モジュールからサーバーにデータを送信し、Android フォンからデータを取得する
PHP - Laravel の withInput() と withErrors() は空です
- 顔写真の画像に★マークを付けたい
- 「『安倍晋三の夫人』付き職員」とは?
- DMMのIDとPASSは一人一つしか持てませんか?
- 男性に聞きます。あなたは専業主夫になりたいですか?
- micronと言うメーカーの温度ヒューズがほしい
- Outlook2013が送受信できない
- PM-840修理方法
- 異動で職場の好きな人と別れるのがつらい
- 携帯代を安くしたい!ラインモバイルがいいですかね?
- 大学時代のゼミの男に告白したらフラれました
- スズメバチの習性 7回目
- PCのSDカードスロットにSDを差しても認識しない
- 小麦粉を付けた方が良い理由は何ですか?
- 「友達が少ない人が良い」と思ってしまいます。
- みりんはなぜ甘いのでしょうか?