分享

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

 博枫 2007-03-13

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


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=603787

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多