1098<Rev_body><mobileid>1</mobileid><Sentiment>neg</Sentiment><Rev_text>1.15的能卖到近3000的价格,再好看估计也没多少帅哥追了;2.可惜没有USB HUB 接口。</Rev_text></Rev_body> 1099<Rev_body><mobileid>2</mobileid><Sentiment>pos</Sentiment><Rev_text>不错不错,看电影效果很好的,踢实况用宽屏就是爽啊,对比度也可以,而且还3年保修</Rev_text></Rev_body> 1010<Rev_body><mobileid>3</mobileid><Sentiment>neg</Sentiment><Rev_text>今天连开了三台机子,结果两台有亮点,一台有暗点。虽说应该都在质量要求之内,但还是很郁闷,最后放弃买了AOC的195fw,后者好歹有无亮点保证。</Rev_text></Rev_body>
假如想将上面的内容提取出来写成下面这样的格式,要怎么提取?(java语言,正则表达式等方法)
1 neg 1.15的能卖到近3000的价格,再好看估计也没多少帅哥追了;2.可惜没有USB HUB 接口。
2 pos 不错不错,看电影效果很好的,踢实况用宽屏就是爽啊,对比度也可以,而且还3年保修。
3 neg 今天连开了三台机子,结果两台有亮点,一台有暗点。虽说应该都在质量要求之内,但还是很郁闷,最后放弃买了AOC的195fw,后者好歹有无亮点保证。
解决方案
40
Pattern pat = Pattern.compile("<mobileid[^>]*>(.*?)</mobileid><Sentiment[^>]*>(.*?)</Sentiment><Rev_text[^>]*>(.*?)</Rev_text>"); Matcher mat = pat.matcher(input); while(mat.find()){ System.out.println(mat.group(1)); System.out.println(mat.group(2)); System.out.println(mat.group(3)); }