-
Notifications
You must be signed in to change notification settings - Fork 415
正则抽取与解析 说明文档
冬日新雨 edited this page Apr 22, 2020
·
34 revisions
抽取文本中的 E-mail 信息,并返回其在文本中的位置offset,以及所属域名domain_name。
>>> import jionlp as jio
>>> text = '请发简历至[email protected]。'
>>> emails = jio.extract_email(text, detail=True))
# [{'text': '[email protected]',
# 'offset': [6, 18],
# 'domain_name': '163'},
# {'text': '[email protected]',
# 'offset': [23, 36],
# 'domain_name': 'qq'}]
- 暂不支持带中文字符的邮箱名称。
抽取文本中的电话号码信息,并返回其在文本中的位置offset,以及电话号码类别type,包括手机(cell_phone)和座机(landline_phone)。
>>> import jionlp as jio
>>> text = '有疑问请联系张小姐18340234920,或拨打(028)58291283。。'
>>> phones = jio.extract_phone_number(text, detail=True))
# [{'text': '18340234920',
# 'offset': [9, 18],
# 'type': 'cell_phone'},
# {'text': '(028)58291283',
# 'offset': [24, 35],
# 'type': 'landline_phone'}]
- 暂不支持解析手机号码归属地 和 座机区号归属地
抽取文本中的 QQ 号,由于qq号特征不突出,故分为严格和非严格两种,默认 strict 为 True。
# 例 1
>>> import jionlp as jio
>>> text = '你加一下我的QQ: 123410942'
>>> res = jio.extract_phone_number(text, detail=True))
>>> print(res)
# [{'text': '123410942', 'offset': [11, 18]}]
# 例 2
>>> text = '收纳金额为123410942元,进而导致...'
>>> res = jionlp.extract_qq(text, detail=True)
>>> print(res)
# []
- 宽松规则指符合 QQ 号特征的号码全部抽取
- 严格规则指在满足 QQ 号本身特征基础上,文本须包含 qq、QQ、加Q 等字样
抽取文本中的身份证号,与 jionlp.parse_id_card
函数配合使用解析身份证号中的地址、出生年月、性别、校验码等信息
>>> text = '此人身份证号是 21040319560330098x,曾经...'
>>> res = jionlp.extract_id_card(text, detail=True)
>>> print(res)
# [{'text': '21040319560330098x', 'offset': [9, 25]}]
>>> res = jionlp.parse_id_card(res[0]['text'])
抽取文本中的超链接,包括 http、https、ftp 等类型。
>>> text = '让我这个手机知乎党来终结这个问题吧!http://link.ipaiban.com/#手机文字链接生成器!'
>>> res = jionlp.extract_id_card(text, detail=False)
>>> print(res)
# ['http://link.ipaiban.com/']
抽取文本中的 ip 地址,仅限于 ipv4。
>>> text = '链接ip地址你知道吗?是0.0.0.0!'
>>> res = jionlp.extract_ip_address(text, detail=False)
>>> print(res)
# ['0.0.0.0']
- 支持判断 ip 地址值介于 0~255 之间,超过则不会返回结果
抽取文本中的括号中的内容,括号类型主要包括 {}「」[]【】()()<>《》
>>> text = '【重磅新闻】特朗普选举失利'
>>> res = jionlp.extract_parentheses(text)
>>> print(res)
# ['【重磅新闻】']
- 若括号仅只有半个,则不做处理
删除文本中的 E-mail 信息,一般用于将其当做无关噪声,处理分析数据。
>>> text = '张晨星[email protected],现在电子邮件可以带中文了吗?'
>>> res = jionlp.remove_email(text)
>>> print(res)
# '张晨星,现在电子邮件可以带中文了吗?'
- 从该例中可知,不支持电子邮件的中文格式。
删除文本中的 url 信息,一般用于将其当做无关噪声,处理分析数据。
>>> text = '让我这个手机知乎党来终结这个问题吧!http://link.ipaiban.com/#手机文字链接生成器!'
>>> res = jionlp.remove_url(text)
>>> print(res)
# '让我这个手机知乎党来终结这个问题吧!#手机文字链接生成器!'
- 若整个字符串全部为 URL,则仅返回空字符串