鄙人想用正则模糊匹配word文档中部分内容,我想要获取【编制单位~人民币】这段范围内中的“xxxxxx表”,自己写了一些表达式,但是总是匹配不到,我写的表达式有:“编.*司/r*/n*/r*/b(.*日)”/b/r*/n*/r*.*币,公司名和表名就用xxx来代替了。
下面是读取的word内容在控制台的显示:
二、财务报表
编制单位: xxxxxx公司
xxxxxxxxxx表 2014 年 12 月 31 日
单位:元币种:人民币
项目 附注七 期末余额 期初余额
------解决思路----------------------
String s="二、财务报表\r\n\r\n编制单位: xxxxxx公司\r\nxxxxxxxxxx表 2014 年 12 月 31 日\r\n\r\n\r\n单位:元币种:人民币\r\n\r\n\r\n\r\n\r\n项目 附注七 期末余额 期初余额 ";
Matcher m=Pattern.compile("(?s).*\\s(.*?表)\\s.*?人民币").matcher(s);
while(m.find())
System.out.println(m.group(1));
------解决思路----------------------
\s空白符\S非空白符
(?s)即Singleline(单行模式)。表示更改.的含义,使它与每一个字符匹配(包括换行 符\n)。
------解决思路----------------------
如果你的格式是固定的"xxxxxx表"前面一定有"编制单位"的话可以这样
"(?s).*?编制单位.*?\\r\\n(.*?表)\\s.*?人民币"
------解决思路----------------------
试试这个:
(?s)(编制单位[^\n]+\s+)?(\S+?表)\s+\d{4}\s*年