目录
-
-
- 什么是正则表达式
- 正则表达式的语法
- 使用正则表达式校验字符串
-
什么是正则表达式
- 简单说就是一组规则,类似日期格式化设置模式 yyyy-MM-dd
- 不是Java特有的一个东西,不同的开发语言有不同程度的支持
- 一般用在字符串中,搜索是否有符合规则的字符串,如果有则匹配成功,如果没有则匹配失败。
正则表达式的语法
方括号:方括号用于查找某个范围内的单个字符
表达式 | 描述 |
---|---|
[abc] | 匹配方括号之间的任意单个字符。 |
[^abc] | 匹配任何不在方括号之间的单个字符。 |
[0-9] | 匹配任何从 0 至 9 的单个数字 |
[a-z] | 匹配任何从小写 a 到小写 z 的单个字符 |
[A-Z] | 匹配任何从大写 A 到大写 Z 的字符 |
元字符:(Metacharacter)是拥有特殊含义的字符 (斜杠前加一个斜杠转义斜杠)
元字符 | 描述 |
---|---|
. | 匹配单个字符,除了换行和行结束符 |
w | 匹配单词字符。 (除了下划线以外的特殊字符都不符合) |
W | 匹配非单词字符 |
d | 匹配数字 |
D | 匹配非数字字符 |
s | 匹配空白字符 |
S | 匹配非空白字符 |
t | 匹配制表符 |
量词:匹配出现的个数
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串。 |
n* | 匹配任何包含零个或多个 n 的字符串。 |
n? | 匹配任何包含零个或一个 n 的字符串。 |
n{X} | 匹配包含 X 个 n 的序列的字符串。 |
n{X,Y} | 匹配包含 X 到 Y 个 n 的序列的字符串。 |
n{X,} | 匹配包含至少 X 个 n 的序列的字符串。 |
n$ | 匹配任何结尾为 n 的字符串。 |
^n | 匹配任何开头为 n 的字符串。 |
使用正则表达式校验字符串
boolean matches(String regex)
String replaceAll(String regex, String replacement)
String[] split(String regex)分割
代码示例
public static void main(String[] args) {
test01();
/**
* 匹配手机号码.
* 作业:测试一个邮箱. xxxx@xxx.xxx
*/
String reg = "^[1][356789]d{9}$"; //以1开头,第二位数字范围,以9个任意数字结尾
String str = "15623088895";
boolean m = str.matches(reg); //执行规则
if (m) {
System.out.println("是一个手机号码");
}else{
System.out.println("不是一个手机号码");
}
}
private static void test01() {
String reg1 = "[^abcdefg]"; //定义一个规则.
String reg2 = "[a-z]"; //匹配小写a-z任意一个字符
String reg3 = "d"; //表示匹配数字,第一个斜杠代表转义
String reg4 = "w"; //表示匹配单词字符,除了特殊字符之外,其他都是单词字符,下划线除外.
String reg5 = "123*";
String str = "12"; // 给定一个内容
boolean m = str.matches(reg5); // 执行规则
System.out.println(m);
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
参考《JavaScript高级程序设计》 迭代是一种所有编程语言中都可以看到的模式。ECMAScript 6 正式支持迭代模式并引入了两个新的语言特性:迭代器和生成器。 迭代器是一个可以由任意对象实现的接口,支持连续获取对象产出的每一个值。任何实现 Itera…