Email地址,URL地址,电话号码提取规则

这几天因为工作需要,需要在一堆文本中提取如下信息。规则如下:

1. 提取Email地址规则(依据RFC 2822 (RFC2822)

1). 区别字符记号 "@"

Mail 本文中,“@” 的前后地址使用的字符为许可使用的1个或者多个。

2). mail 地址许可使用的字符及最大字符数

Mail 地址可以使用以下82 个字符:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

0123456789

!#$%&'*+-./=?^_{|}~

“@”在外的93个ASCII 字符中,禁止使用以下 11 个字符 :

"(),:;<>[/]

包括“@” 最多可以识别64 个字符。 超过64个字节以外的任何允许使用的字符都不能被识别作为E-mail 地址。

延伸阅读:The Elements of an Email Address

RFC 2822

2. 提取URL地址规则(依据RFC 1738 (RFC1738))

1). 区别字符记号(这里简单讨论一般非智能手机使用规则,只支持http访问)

在以下UR L 标识后面跟随一个或多个( 后面 URL 格式中允许使用的) 字符的情况,到一个区分字符(后面URL 格式中允许使用的文字以外的任何其他字符)出现为止均为此URL 的一部分。

http://

https://

2). URL 允许使用的字符及最大字符数

允许使用以下91 个文字:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

0123456789

!#$%&'()*+,-./:;=?@[/]^_`{|}~

94个ASCII 文字中,禁止使用以下3个文字:

"<>

包括URL 区别字符最大可以识别256 个字节的字符。 超过256的任何字符URL 将不予识别。

3. 提取电话号码规则

1). 号码可以包括一个和多个以下字符“0”~“9” ,“*”和“#”。

2). 3 <= 号码长度 <= 32

3).“+”可以做为一个号码的开始,但不能计算到号码长度中。

4).“Space”, “-“, “(“, “)”,这四个字符可以穿插在一条电话号码中,但提取后必须忽略掉这些字符,这些字符同样不能计算到号码长度中。

举例如下:

Example Message text Anchored number Number to dial
1 01/01/2005 not anchor -
2 January 2005 January 2005 2005
3 *99# *99# *99#
4 99#2* 99#2* 99#2*
5 *9# *9# *9#
6 +39 not anchor -
7 +391 +391 +391
8 tel:+39 not anchor -
9 tel:+391 tel: +391 +391
10 391 091 391 091 391091
11 +(0)44-8 +(0)44-8 +0448
12 123, 456 123 , 456 Two different num: 123 and 456
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值