问题标签用户 java 正则表达式 抓取2行特定中文词语中的一段中文

老师让我们做一个能从汉字网站http://hanyu.iciba.com上抓取汉字信息的爬虫,现在遇到了一个难题,下面是我用httpunit解析出来的某个字的部分信息。

繁体

笔画
5笔
造字法
原为形声
部首
龙部
五笔
DXV
结构
单一结构
比如说现在我要截取这个字的部首,也就是部首和五笔这2行字中间的那段字,那正则表达式是不是就是"部首.五笔",但是这样做了之后什么也没有截取出来,能告诉我怎么写这个表达式吗。

第1个回答  推荐于2016-05-21
正则表达式是中 . 的含义是除换行符之外的单个字符,也就是说如果 “部首.五笔” 之间有换行符,你的表达式将不能匹配到结果。
试试下面的表达式:
(?:部首)[\s\S]+?(?:五笔)追问

我用\s它说我转义序列无效,什么原因?

追答

\s是正则表达式的转义,你说提示应该是字符串中的提示,我们在Java中定义parttern是应该表达为:"(?:部首)[\\s\\S]+?(?:五笔)"

本回答被提问者和网友采纳
第2个回答  2014-11-04
应该还要加一个*号吧,因为.号只是单个字符! 你这样写试试 部首.*五笔 或者用这个 部首.+五笔