正则表达式,用于在Java中查找文本和点之间的文本

时间:2013-01-03 13:58:23

标签: java regex

我正在抓取一个网站,它有相对的网址,我想将它们转为绝对路径。 出于这个原因,我想使用正则表达式。

例如

 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.

我认为我的正则表达似乎不正确。我应该如何改变它才能正常工作。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

以下应该可以解决问题:

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

这假设只有一个“。”匹配中的字符,即没有多个“。”s

答案 1 :(得分:1)

试试这个正则表达式:

/.*/\w+\.

以下文字:

Lorem Ipsum /image/xyz.jpg

它将匹配此

/image/xyz.

PS:我测试过使用.NET正则表达式,但是这个应该在java中正常工作