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)中无内容。请问上面的正则表达式哪里有问题。 展开
<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)中无内容。请问上面的正则表达式哪里有问题。 展开
4个回答
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
转成xml就简单多了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询