java中解析html代码提取字符串

Html源码:<propertyname="name">projectNo</property><propertyname="property">projectNo</p... Html源码:
<property name="name">
projectNo
</property>
<property name="property">
projectNo
</property>
<property name="label">
项目编号
</property>
<editor />
获取上面代码中的“项目编号”

使用正则表达式:
pattern = Pattern.compile("[\\s\\S]*?name=\"label\">[\\s\\S]*?(.*?)[\\S\\s]*?</property>[\\s\\S]*?");
System .out.println(matcher.matches());
System .out.println(matcher.group(1));
返回True,但是matcher.group(1)中无内容。请问上面的正则表达式哪里有问题。
展开
 我来答
匿名用户
2015-01-14
展开全部
package test;

public class JButtonTest
{
public static void main ( String[] args )
{
String regex = "[\\s\\S]+\\<property\\s+name[\\=\'\"]+label[^\\>]+\\>([^\\<]+)\\<\\/property\\>[\\s\\S]*";
String input = "<property name=\"name\">\r\nprojectNo\r\n</property>\r\n<property name=\"property\">\r\n projectNo\r\n</property>\r\n<property name=\"label\">\r\n 项目编号\r\n</property>\r\n<editor />";
System.out.println (input.replaceAll (regex, "$1"));
}
}
匿名用户
2015-01-14
展开全部
Java代码  
iv=(ImageView)this.findViewById(R.id.iv);  
            iv.setTag("toRight");  
            iv.setOnClickListener(listener);  
            ani_0 = new TranslateAnimation(  
                    Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f,  
                    Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f);  
            ani_1= new TranslateAnimation(  
                    Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,  
                    Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f);  
            ani_0.setInterpolator(new AccelerateDecelerateInterpolator());     
            ani_0.setDuration(1000);  
            ani_0.setFillEnabled(true);  
            ani_0.setFillAfter(true);  
            ani_0.setAnimationListener(animationListener);  
            ani_1.setInterpolator(new AccelerateDecelerateInterpolator());     
            ani_1.setDuration(1000);  
            ani_1.setFillEnabled(true);  
            ani_1.setFillAfter(true);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-14
展开全部

你好:

正则可以这样写

pattern = Pattern.compile("[\\s\\S]*?name=\"label\">(.*?)</property>[\\s\\S]*?");
更多追问追答
追问
你好,我用了你写的正则表达式,matcher.matches()返回的是false。
追答

根据你的写的,

		String string = "<property name=\"label\">项目编号</property><editor />";
Pattern p = null;
p = Pattern.compile("[\\s\\S]*?name=\"label\">(.*?)</property>[\\s\\S]*?");
Matcher m = p.matcher(string);
while(m.find()){
System.out.println("string="+m.group(1));
}
System.out.println(m.matches());

结果:

string=项目编号

true

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友14f7e688aad
2015-01-14 · TA获得超过660个赞
知道小有建树答主
回答量:830
采纳率:0%
帮助的人:649万
展开全部
转成xml就简单多了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式