寻一正则表达式匹配<meta name="description" content="....../>
解决方案 »
- java中关于字符串
- jcifs.smb匿名访问局域网共享目录时URL的问题
- (求解)请简单构造一个“SQL注入”漏洞发生的场景,即编写一个有问题得SQL访问代码,并模拟可能存在得安全问题。
- 如何解释这个JAVA问题
- 各位高手,给点初学者的建议
- A:JAVA:1:类InitialORDERtEST是公共的,应在INITIALORDERTEST。JAVA的文件中声明 QQ 466825413 [email protected]
- 求JSP版阿信做的“动态树”
- 如何对一段代码文字中的字段进行分析
- 调查一下,关于 jbuilder6。多多参加,哦,人人得分的问题哦
- 在j++中怎样引用其它的包,比如RMI包????
- java 下swing的开发
- 如何拆分复杂字符串
String str = "<meta name=\"description\" content=\"内容\"/>";
Matcher m=Pattern.compile("<meta.*content=\"([^<>]*)\"/>").matcher(str);
if(m.find())
System.out.println(m.group(1));
String str = "<meta name=\"description\" content=\"内容1\"/><meta name=\"description\" content=\"内容2\"/>";
Matcher m=Pattern.compile("<meta.*?content=\"([^<>]*)\"/>").matcher(str);//这里没贪婪限制的话会丢失掉前面的 内容1
while(m.find())
System.out.println(m.group(1));
String str = "<meta name=\"description\" content=\"内容1\"/><meta name=\"description\" content=\"内容2\"/>";
Matcher m=Pattern.compile("<meta[^<>]*content=\"([^<>]*)\"/>").matcher(str);
while(m.find())
System.out.println(m.group(1));
很专业,能直接提取匹配的值,又让我学到了不少东西,但是楼主明显是要从网页上抓取name="description" 里面的内容,现在用这个代码把所有<meta>里content的内容都提取出来了,所以不如把name限制加进去Matcher m=Pattern.compile("<meta name=\"description\"[^<>]*content=\"([^<>]*)\"/>").matcher(str);如果在想把这个写的完美就会发现有的网站并不是meta后面就跟着name,比如这个界面就是“<meta content="寻一正则表达式匹配 meta name description content" name="description"/>”这样的话这个正则又失去效果了,可是要是把name限制加进去又有点不好写这个正则,毕竟还要判断name和content的位置,所以最好的解决方法就是在提取某个网页时首先在正则表达式里指定name的位置,在同一网站的不同级网页中大多都是一致的