私のアプリケーションでは、リンクを取得して、10(例)文字より大きい場合はリンクを解除する必要があります。問題は、たとえば「これは私のウェブサイトwww.stackoverflow.comです」というテキスト全体をこのマッチャーに直接送信する場合です。
Pattern patt = Pattern.compile("(?i)\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\'\".,<>???“”‘’]))");
Matcher matcher = patt.matcher(text);
matcher.replaceAll("<a href=\"http://$1\" target=\"_blank\">$1</a>");
それはそれを壊すことなく、ウェブサイト全体を表示します。
私がやろうとしていたのは、$ 1の値を取得することです。そうすれば、最初の値を正しく維持しながら、2番目の値を壊すことができます。
文字列を分割する別の方法があります。
アップデート
私が手に入れたいのはウェブサイトだけなので、結局それを壊すことができます。それは私に大いに役立つでしょう。