怎么用正则表达式,取出特定的字符?
原始字符串是下面这样的:
<fieldInfo><fieldChName>人名</fieldChName><fieldEnName>Name</fieldEnName><fieldContent>张三</fieldContent></fieldInfo>
<fieldInfo><fieldChName>地址</fieldChName><fieldEnName>Address</fieldEnName><fieldContent>北京</fieldContent></fieldInfo>
<fieldInfo><fieldChName>电话</fieldChName><fieldEnName>Phone</fieldEnName><fieldContent>139345123</fieldContent></fieldInfo>
<fieldInfo><fieldChName>工资</fieldChName><fieldEnName>Salary</fieldEnName><fieldContent>1000</fieldContent></fieldInfo>
我用下面的代码,取到"地址"这一行,怎么再取到"北京"呢?
String detail = "<fieldInfo><fieldChName>人名</fieldChName><fieldEnName>Name</fieldEnName><fieldContent>张三</fieldContent></fieldInfo>
<fieldInfo><fieldChName>地址</fieldChName><fieldEnName>Address</fieldEnName><fieldContent>北京</fieldContent></fieldInfo>
<fieldInfo><fieldChName>电话</fieldChName><fieldEnName>Phone</fieldEnName><fieldContent>139345123</fieldContent></fieldInfo>
<fieldInfo><fieldChName>工资</fieldChName><fieldEnName>Salary</fieldEnName><fieldContent>1000</fieldContent></fieldInfo>";
Pattern p = Pattern.compile("<fieldChName>([^</fieldChName>]*)");
Matcher m = p.matcher(detail );
while (m.find()) {
if(m.group(1).indexOf("地址")!=-1){
//找到"地址"这一行后,怎么取到"北京"呢?
}
}
------解决方案-------------------- }
//正则提取
public static List<String> getContext() {
String html="kk<p>123456</p>ssss";
List<String> resultList = new ArrayList<String>();
Pattern p = Pattern.compile("<p>([^</p>]*)");//匹配<p>开头,</p>结尾的文档
Matcher m = p.matcher(html );//开始编译
while (m.find()) {
resultList.add(m.group(1));//获取被匹配的部分
}
return resultList;
}
提取出来之后在进行一次提取就行了。。
另外好像这个不是用正则提取的,应该是用xml读取的。