1

Web サイトをクロールしていますが、相対 URL があり、それらを絶対パスに変換したいと考えています。このため、正規表現を使用したいと考えています。

例えば

 String text =  new String();
 text +="Lorem Ipsum /image/xyz.jpg"; 
 text +=" Lorem Ipsum /image/xyz2.jpg";
 text +=" Lorem Ipsum /image/xyz2.jpg";
 Pattern pattern = Pattern.compile("\\/image\\/.*\\.");
 Matcher matcher = pattern.matcher(text);
 while(matcher.find()){
  System.out.println(matcher.group());
 }

私はそのような種類の出力を得たい:

/image/xyz.
/image/xyz2.
/image/xyz2.

私の正規表現は正しくないようです。適切に動作させるには、どのように変更すればよいですか。

どんな助けでも大歓迎です。

4

2 に答える 2

2

次のようにしてください。

Pattern.compile("\\/image\\/[^.]*\\.");

これは、「.」が 1 つしかないことを前提としています。一致する文字、つまり、複数の「.」はありません

于 2013-01-03T14:11:32.870 に答える
1

次の正規表現を試してください。

/.*/\w+\.

次のテキストの場合:

Lorem Ipsum /image/xyz.jpg

これにマッチします

/image/xyz.

PS: .NET 正規表現を使用してテストしましたが、これは Java で正常に動作するはずです。

于 2013-01-03T14:08:32.940 に答える