数值数据判别及面积提取

处理文本经常会遇到各种数值判别及关键字提取,今天paperclub就利用正则做一个demo分享。

判断字符串中是否有数值类字段:

效果如下:

今天星期三: => is_numerical: True, value: 三

电话119: => is_numerical: True, value: 119

one boy: => is_numerical: True, value: one

2023年,新冠终将称为过去式!: => is_numerical: True, value: 2023

hello, paperClub: => is_numerical: False, value:

今天的你, 是否比昨天快乐呢? : => is_numerical: False, value:

2. 面积及单位处理:

效果如下:

Sunshine---58平米, res = > 58平方米

六十九平米, res = > 六十九平方米

-98㎡, res = > 98平方米

-56㎡, res = > 56平方米

晴·89㎡, res = > 89平方米

148.5㎡, res = > 148.5平方米

800平方尺, res = > 800平方尺

800方尺, res = > 800方尺

10000+㎡, res = > 10000+平方米

2800㎡平面, res = > 2800平方米

120721方, res = > 120721平方米

8,200平方米, res = > 8200平方米

橙·109㎡, res = > 109平方米

125m2+, res = > 125平方米

1+1◥119m², res = > 119平方米

110,000平方, res = > 110000平方米

2800㎡平面, res = > 2800平方米

10000+㎡, res = > 10000+平方米

115m2, res = > 115平方米

980万平方公里, res = > 980万平方公里

def is_numerical(word:str):

""" 检查字符串中是否有数值型数据"""

reg = '([\d|一|二|三|四|五|六|七|八|九|十|壹|贰|叁|弎|仨|肆|伍|陆|柒|捌|玖|俩|两|零|百|千|万|亿|兆|拾|佰|仟|萬|億]+)'

reg += "|(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?Dec(ember)?)"

reg +="|(zero|one|two|three|four|five|six|seven|eight|nine)"

state = False

vlaue = ""

patten = re.compile(reg)

res = patten.search(word)

if res:

state = True

vlaue = res.group()

return state, vlaue


https://github.com/paperClub-hub/daily_collection

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容