私はhtmlコードを含む文字列を持っていて、別のURLのドメイン名をhttp://localhost
に置き換えようとしていますが、正規表現は常に文字列。 私はここで間違って何をやっているこのコードはなぜJava regex replaceAll()は最後の一致のみを返します
http://localhost/ijk
を出力生成される以下
String data = "https://example.com/abc/xyz https://sub.example.com/abc/def https://sub-example.com/abc/ijk";
System.out.println(data);
data = data.replaceFirst("(http|https)://.*/abc/", "http://localhost/");
System.out.println(data);
以下のコードを参照してください...私はあなたがrerstrictすべき
'。*'最後の '/ abc /'の前に最長の文字列にマッチする貪欲です。 – anubhava
あなたは入力の最後まで最初のhttpsから始まります。 – GhostCat
'。*?'を使って文字の欲張りを少なくする – Ferrybig