java如何用正则表达式来提取一个TXT文档中的字段?我想要提取一个我下载下来的网页源代码里面的字段

比如我要提取<style="display:none">赞同</div>中的赞同2个字,而且是所有的<style="display:none">标签和</div>中的汉字... 比如我要提取<style="display:none">赞同</div>中的赞同2个字,而且是所有的<style="display:none">标签和</div>中的汉字,应该怎么写呢? 展开
 我来答
百度网友845f74e61
2011-12-27 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1626万
展开全部
试了一下正则,不是很好写。暂时还没有思路。
现在用截取字符串的方法,实现的了想要的效果。你看一下吧。

import java.util.ArrayList;
import java.util.List;

public class Test {

public static void main(String[] args) {

String value = "asdfasdkai8<style=\"display:none\"1>赞同1</div><style=\"display:none\">赞同2</div><style=\"display:none\">asdkfj2399</div>";
String startStr = "<style=\"display:none\">";

List list = new ArrayList();

while (true) {
int start = value.indexOf(startStr);
if (start == -1) {
break;
}
int end = value.indexOf("</div>");
if (end < start) {
value = value.substring(start);
continue;
}
;
list.add(value.substring(start + startStr.length(), end));
value = value.substring(end + "</div>".length());
}

for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
更多追问追答
追问
但是我是想提取TXT文档里面的不是自己输入的,例如我提取d:/qg.txt里面所有和之间的内容
追答
FileReader fr = new FileReader("d:\\qg.txt");
BufferedReader br = new BufferedReader(fr);
while(br.ready()){
// 读取出一行字符串
String line = br.readLine();
}
fr.close();
br.close();

用这部分代码来读取文件的内容。
全部代码如下。startStr = "";是因为读出时会有转义字符所在加了\\\
这个也会因系统不同而不同,如果得不到结果,看一下这块。
--------------------------------------------------------------
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

public class Test {

public static void main(String[] args) throws Exception {

FileReader fr = new FileReader("d:\\qg.txt");
BufferedReader br = new BufferedReader(fr);
List list = new ArrayList();

while (br.ready()) {
// 读取出一行字符串
String value = br.readLine();
String startStr = "";
while (true) {
int start = value.indexOf(startStr);
if (start == -1) {
break;
}
int end = value.indexOf("");
if (end ".length());
}
}

for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}

fr.close();
br.close();
}
}
make_big_money
2011-12-27 · TA获得超过233个赞
知道小有建树答主
回答量:272
采纳率:100%
帮助的人:291万
展开全部
我猜你应该是在style前少了一个div
如果是的话正则表达式这个么写
<div.+style="display:none">([^<]+)</div>
你取分组1,就是你要的内容,例如赞同

如果你确认style前面没有div,那用
<style="display:none">([^<]+)</div>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在峨石宝塔跳伦巴的皮皮猪
2011-12-27 · TA获得超过300个赞
知道小有建树答主
回答量:452
采纳率:0%
帮助的人:202万
展开全部
value.matches("^[\u4e00-\u9fa5]+$")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang530279
2011-12-27
知道答主
回答量:12
采纳率:0%
帮助的人:12.3万
展开全部
可以直接用string截取>结束和<开始的中间的字符,这样效率更高
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式