vlinDone
BlogJava
首页
新文章
新随笔
聚合
管理
posts - 33, comments - 17, trackbacks - 0
从指定的字符串中提取Email
1
/** */
/**
2
* 从指定的字符串中提取Email
3
* content 指定的字符串
4
*/
5
public
static
String parse(String content)
{
6
String email
=
null
;
7
if
(content
==
null
||
content.length()
<
1
)
{
8
return
email;
9
}
10
//
找出含有@
11
int
beginPos;
12
int
i;
13
String token
=
"
@
"
;
14
String preHalf
=
""
;
15
String sufHalf
=
""
;
16
17
beginPos
=
content.indexOf(token);
18
if
(beginPos
>-
1
)
{
19
//
前项扫描
20
String s
=
null
;
21
i
=
beginPos;
22
while
(i
>
0
)
{
23
s
=
content.substring(i
-
1
,i);
24
if
(isLetter(s))
25
preHalf
=
s
+
preHalf;
26
else
27
break
;
28
i
--
;
29
}
30
//
后项扫描
31
i
=
beginPos
+
1
;
32
while
( i
<
content.length())
{
33
s
=
content.substring(i,i
+
1
);
34
if
(isLetter(s))
35
sufHalf
=
sufHalf
+
s;
36
else
37
break
;
38
i
++
;
39
}
40
//
判断合法性
41
email
=
preHalf
+
"
@
"
+
sufHalf;
42
if
(isEmail(email))
{
43
return
email;
44
}
45
}
46
return
null
;
47
}
48
49
/** */
/**
50
* 判断是不是合法Email
51
* email Email地址
52
*/
53
public
static
boolean
isEmail(String email)
{
54
try
{
55
if
(email
==
null
||
email.length()
<
1
||
email.length()
>
256
)
{
56
return
false
;
57
}
58
59
String check
=
"
^([0-9a-zA-Z]+[_.0-9a-zA-Z-]+)@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2,3})$
"
;
60
Pattern regex
=
Pattern.compile(check);
61
Matcher matcher
=
regex.matcher(email);
62
boolean
isMatched
=
matcher.matches();
63
if
(isMatched)
{
64
return
true
;
65
}
else
{
66
return
false
;
67
}
68
}
catch
(RuntimeException e)
{
69
return
false
;
70
}
71
}
72
73
/** */
/**
74
* 判断是不是合法字符
75
* c 要判断的字符
76
*/
77
public
static
boolean
isLetter(String c)
{
78
boolean
result
=
false
;
79
80
if
(c
==
null
||
c.length()
<
0
)
{
81
return
false
;
82
}
83
//
a-z
84
if
(c.compareToIgnoreCase(
"
a
"
)
>=
0
&&
c.compareToIgnoreCase(
"
z
"
)
<=
0
)
{
85
return
true
;
86
}
87
//
0-9
88
if
(c.compareToIgnoreCase(
"
0
"
)
>=
0
&&
c.compareToIgnoreCase(
"
9
"
)
<=
0
)
{
89
return
true
;
90
}
91
//
. - _
92
if
(c.equals(
"
.
"
)
||
c.equals(
"
-
"
)
||
c.equals(
"
_
"
) )
{
93
return
true
;
94
}
95
return
result;
96
}
97
posted on 2008-07-23 17:25
scea2009
阅读(196)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
个人
网摘(6)
随笔档案
2008年12月 (2)
2008年8月 (1)
2008年7月 (24)
2008年6月 (1)
2008年5月 (4)
PL/SQL存储过程与函数
搜索
最新评论
1. re: 18位号码身份证校验码的计算公式[未登录]
1@邱丽娟
--李杰
2. re: 生成 JSON 字符串的工具
ddddddddd
--hls
3. re: 18位号码身份证校验码的计算公式
340621198706139338
--陆树军
4. re: 生成 JSON 字符串的工具
12121
--11112dacda
5. re: 18位号码身份证校验码的计算公式
wozhidao
--lixziyu
阅读排行榜
1. 18位号码身份证校验码的计算公式(25051)
2. 生成 JSON 字符串的工具 (4954)
3. s:select(2859)
4. 关于 Calendar.getInstance()(1408)
5. 根据输入的ISBN号,检验ISBN的有效性(1394)
评论排行榜
1. 18位号码身份证校验码的计算公式(10)
2. 根据输入的ISBN号,检验ISBN的有效性(4)
3. 生成 JSON 字符串的工具 (2)
4. 时间计算工具类(1)
5. 数据库连接(0)