一、定义:
正则表达式是一种字符串操作的语法规则,利用此语法规则可以灵活的实现字符串的匹配、拆分、替换。
示例:要求判断某一个字符串是否有数字组成。
示例:要求判断某一个字符串是否有数字组成。
常规方法:
public
static
Boolean isNumber(String
str
){
if
(
""
.endsWith(
str
)||
null
==
str
){
return
false
;
}
else
{
char
data
[]=
str
.toCharArray();
for
(
int
i
= 0;
i
<
data
.
length
;
i
++) {
if
(
data
[
i
]>
'9'
||
data
[
i
]<
'0'
){
return
false
;
}
}
}
return
true
;
}
2、一组字符:任意匹配里面的一个单个字符:
//
String
str
=
"f"
;
str
.matches(
"[abcdefgABCDEFG]"
);
(1)[abc]:表示可能是字母a,可能是字母b或者是字母c;
(2)[^abc]:表示不是字母a,字母b,字母c的任意一个;
(3)[a-zA-Z]:表示全部字母中的任意一个;
(4)[0-9]:表示全部数字的任意一个;
(1)· :表示任意的一位字符;
(2)\d :表示任意的一位数字,等价于“[0-9]”;
(3)\D :表示任意的一位非数字,等价于“[~0-9]”;
(4)\w :表示任意的一位字母、数字、_,等价于“[a-zA-Z0-9_]”;
(5)\w :表示任意的一位非字母、数字、_,等价于“[^a-zA-Z0-9_]”;
(6)\s :表示任意的一位空格,例如:\n、\t等;
(7)\S :表示任意的一位非空格;
3、边界匹配:在以后编写JavaScript的时候使用正则中要使用到:
(1)^:表示一组正则的开始;
(2)$:表示一组正则的结束;
4、简写表达式:每一位出现的简写标记也只表示一位:
(1)· :表示任意的一位字符;
(2)\d :表示任意的一位数字,等价于“[0-9]”;
(3)\D :表示任意的一位非数字,等价于“[~0-9]”;
(4)\w :表示任意的一位字母、数字、_,等价于“[a-zA-Z0-9_]”;
(5)\w :表示任意的一位非字母、数字、_,等价于“[^a-zA-Z0-9_]”;
(6)\s :表示任意的一位空格,例如:\n、\t等;
(7)\S :表示任意的一位非空格;
5、数量表示:之前所有的正则都只是表示一位,如果要表示多位,则就需要数量表示。
(1)正则表达式?:此正则出现0次或1次;
(2)正则表达式*:此正则出现0次、1次或多次;
"a"
.matches(
"a?"
)
""
.matches(
"
a*
"
)
(3)正则表达式+:次正则出现1次或多次;
"aaaa"
.matches(
"a+"
)
(4)正则表达式{n}:此正则出现正好n次;
(5)正则表达式{n,}:此正则出现n次以上;
(6)正则表达式{n,m}:此正则出现n
–
m次。
三、String类对正则的支持
1.字符串替换
"aaa&**389fhh%m$mmdd#kk3445@ll"
.replaceAll(
"[^a-z]"
,
""
);
2.字符串拆分
String
str
=
"aaa0bbb1ccc2ddd3eee4"
;
String
regex
=
"[0-9]"
;
String
result
[]=
str
.split(
regex
);
for
(
int
i
= 0;
i
<
result
.
length
;
i
++) {
System.
out
.println(
result
[
i
]);
}