- 论坛徽章:
- 8
|
回复 7# laoliuya
就是正则嘛,至于用python,还是其它语言或工具 基本一样。单纯为了提取或匹配我觉得还是grep方便。
正则就一部分一部分看嘛
第一部分:
你没有给出什么是实体的精确定义,看你提供的样本我只能认为实体可能由大写字母,数字,中英括号,&,汉字组成,汉字在perl正则下可以用\p{Han}匹配。
第二部分:
- ( \d+(\.\d)?(亿元|亿|万元|元) | \d{1,2}(\.\d{1,2})?%(?!、) | :?(\d{1,2}(\.\d{1,2})?%、){1,2}\d{1,2}(\.\d{1,2})?%和\d{1,2}(\.\d{1,2})?% )
复制代码 又可以分为三个分支,对应数值的几种情况
第一分支
表示多少钱。
第二分支
- \d{1,2}(\.\d{1,2})?%(?!、)
复制代码 表示只有一个百分比%,一个%后面不能是 、号。
第三分支
- :?(\d{1,2}(\.\d{1,2})?%、){1,2}\d{1,2}(\.\d{1,2})?%和\d{1,2}(\.\d{1,2})?%
复制代码 表示 3个或4个 百分比的形式。
开头可以有个:或者没有, *.*%、这个可能重复1到2次,最后是*.*%和*.*%
所有的组后起来,就可以了。
最后这个正则只是为了能简单出结果,还没有过多的考虑优化和性能问题。应该有改进空间。
|
|