這幾天因為工作需要,需要在一堆文本中提取如下信息。規(guī)則如下:
1. 提取Email地址規(guī)則(依據(jù)RFC 2822 (RFC2822))
1). 區(qū)別字符記號 "@"
Mail 本文中,“@” 的前后地址使用的字符為許可使用的1個或者多個。
2). mail 地址許可使用的字符及最大字符數(shù)
Mail 地址可以使用以下82 個字符:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
!#$%&‘*+-./=?^_{|}~
“@”在外的93個ASCII 字符中,禁止使用以下 11 個字符 :
"(),:;<>[\]
包括“@” 最多可以識別64 個字符。 超過64個字節(jié)以外的任何允許使用的字符都不能被識別作為E-mail 地址。
延伸閱讀:The Elements of an Email Address
2. 提取URL地址規(guī)則(依據(jù)RFC 1738 (RFC1738))
1). 區(qū)別字符記號(這里簡單討論一般非智能手機使用規(guī)則,只支持http訪問)
在以下UR L 標識后面跟隨一個或多個( 后面 URL 格式中允許使用的) 字符的情況,到一個區(qū)分字符(后面URL 格式中允許使用的文字以外的任何其他字符)出現(xiàn)為止均為此URL 的一部分。
http://
https://
2). URL 允許使用的字符及最大字符數(shù)
允許使用以下91 個文字:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
!#$%&‘()*+,-./:;=?@[\]^_`{|}~
94個ASCII 文字中,禁止使用以下3個文字:
"<>
包括URL 區(qū)別字符最大可以識別256 個字節(jié)的字符。 超過256的任何字符URL 將不予識別。
3. 提取電話號碼規(guī)則
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




