黑马程序员技术交流社区

标题: 正则表达式 问题。 [打印本页]

作者: 郑枫    时间: 2012-9-4 11:39
标题: 正则表达式 问题。
本帖最后由 郑枫 于 2012-9-4 12:15 编辑

我想把   src="http://ww2.sinaimg.cn/bmiddle/8e2a8558jw1dvdr2r8jkej.jpg 获取, 我想着是 以src=  开头 .jpg结尾,中间任意字符  这样怎么定义呀。
作者: 孙沛    时间: 2012-9-4 11:46
/src"(.*?)\.jpg/
作者: 郑枫    时间: 2012-9-4 11:55
孙沛 发表于 2012-9-4 11:46
/src"(.*?)\.jpg/

"  是什么意思呀。。
作者: 周兴华    时间: 2012-9-4 11:58
本帖最后由 周兴华 于 2012-9-4 12:10 编辑

import java.util.regex.*;
class RegexDemo2
{
public static void main(String[] args)
{
  getDemo();
}
public static void getDemo()
{

  String str = "src=http://ww2.sinaimg.cn/bmiddle/8e2a8558jw1dvdr2r8jkej.jpg";
  System.out.println(str);
String reg = "【s】[r][c][=](.)+[\\.][j][p][g]";  //这里就是楼主想要的正则表达式
  //将规则封装成对象。
  Pattern p = Pattern.compile(reg);
  //让正则对象和要作用的字符串相关联。获取匹配器对象。
  Matcher m  = p.matcher(str);
  System.out.println(m.matches());
}
}

作者: 周兴华    时间: 2012-9-4 12:03
String reg = "[r][c][=](.)+[\\.][j][p][g]";
额,一写正则就被划线了,楼主看内容就好了。

作者: 郑枫    时间: 2012-9-4 12:08
周兴华 发表于 2012-9-4 11:58
import java.util.regex.*;
class RegexDemo2
{

:)  太感谢你了,   中间的(.)+ 的意思是不是  可以是任意字符啊,  但是这个()什么意思呀。
作者: 周兴华    时间: 2012-9-4 12:12
郑枫 发表于 2012-9-4 12:08
太感谢你了,   中间的(.)+ 的意思是不是  可以是任意字符啊,  但是这个()什么意思呀。 ...

()是把括号里面的字符定义为一个组,
.就是任意字符
(.)+ 加上一个加号表示这个组里的字符可以出现一次或多次。
作者: 郑枫    时间: 2012-9-4 12:14
周兴华 发表于 2012-9-4 12:12
()是把括号里面的字符定义为一个组,
.就是任意字符
(.)+ 加上一个加号表示这个组里的字符可以出现一次 ...

:handshake  谢谢你。  明白了。
作者: 周兴华    时间: 2012-9-4 12:41
郑枫 发表于 2012-9-4 12:14
谢谢你。  明白了。

楼主,其实可以不用括号,直接用 .+ 就可以表示任意字符出现一次或多次,我用刚刚给你贴的那个代码验证过了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2