正则表达式学习与应用及JAVA中相关函数
2018-03-18 20:34
441 查看
首先po出最简单的规则:
规则字符在java.util.regex Pattern类中
1:字符
x 字符x
\\ 反斜线字符
\n 换行符
\r 回车符
2:字符类
[abc] a、b 或 c
[^abc] 任何字符,除了 a、b 或 c
[a-zA-Z] a到 z或 A到 Z,两头的字母包括在内
[0-9] 包括数字字符0-9
3:预定义字符类
. 任何字符
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
4:边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界(不能是单词字符)
hello?hao are you.
5.数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
例子:[1-9][0-9]{4,14} //QQ号码正则表达
表示第一位取值范围为1-9,后面是长度为4-14的取值为0-9的数字字符串。1[38][0-9]{9} //13或18开头的手机号表达
表示第一位为1,第二位为3或8,后面是长度为9的取值为0-9的数字字符串。\\w+@\\w{2,8}(\\.[a-z]{2,3})+ //邮箱地址表示方式
前面任意位为单词字符(包含数字)中间加@后面是长度为2-8的单词字符(包含数字)再加上.后面跟着2-3位的a-z的字母字符。\\d+
表示后面出现的数字串,直到后面出现非数字为止。
还可以应用一些逻辑运算符如&|等等。
具体的正则表达式学习可以去此Blog,非常详细:http://www.runoob.com/regexp/regexp-example.html http://blog.csdn.net/u010552788/article/details/51019367
除此之外还有一些日常和正则表达式配套使用的一些java中的常用方法如:
对正则表达式进行匹配的Matches():
public boolean matches(String regex);
boolean flag = String1.matches(regex);
根据正则表达式对String进行分割的split();
public String[] split(String regex);
String s1 = "aa,bb,cc";
String regex1 = ",";
String[] strArray1 = s1.split(regex1);
for (int x = 0; x < strArray1.length; x++) {
System.out.println(strArray1[x]);
}
输出结果为:
aa
bb
cc
String.split("要切割的准侧")返回的是一个String[ ]的首地址;String.split("要切割的准侧").length 返回的是这个String被切割后的子字符串的个数(及被切割成了几个段);String.split(""),此时,切割后的第一个段是空字符串。
根据正则表达式对String中符合条件的进行替换的replaceAll();
public String replaceAll(String regex, String replacement);
hello***xiexie***go
规则字符在java.util.regex Pattern类中
1:字符
x 字符x
\\ 反斜线字符
\n 换行符
\r 回车符
2:字符类
[abc] a、b 或 c
[^abc] 任何字符,除了 a、b 或 c
[a-zA-Z] a到 z或 A到 Z,两头的字母包括在内
[0-9] 包括数字字符0-9
3:预定义字符类
. 任何字符
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
4:边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界(不能是单词字符)
hello?hao are you.
5.数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
例子:[1-9][0-9]{4,14} //QQ号码正则表达
表示第一位取值范围为1-9,后面是长度为4-14的取值为0-9的数字字符串。1[38][0-9]{9} //13或18开头的手机号表达
表示第一位为1,第二位为3或8,后面是长度为9的取值为0-9的数字字符串。\\w+@\\w{2,8}(\\.[a-z]{2,3})+ //邮箱地址表示方式
前面任意位为单词字符(包含数字)中间加@后面是长度为2-8的单词字符(包含数字)再加上.后面跟着2-3位的a-z的字母字符。\\d+
表示后面出现的数字串,直到后面出现非数字为止。
还可以应用一些逻辑运算符如&|等等。
具体的正则表达式学习可以去此Blog,非常详细:http://www.runoob.com/regexp/regexp-example.html http://blog.csdn.net/u010552788/article/details/51019367
除此之外还有一些日常和正则表达式配套使用的一些java中的常用方法如:
对正则表达式进行匹配的Matches():
public boolean matches(String regex);
boolean flag = String1.matches(regex);
根据正则表达式对String进行分割的split();
public String[] split(String regex);
String s1 = "aa,bb,cc";
String regex1 = ",";
String[] strArray1 = s1.split(regex1);
for (int x = 0; x < strArray1.length; x++) {
System.out.println(strArray1[x]);
}
输出结果为:
aa
bb
cc
String.split("要切割的准侧")返回的是一个String[ ]的首地址;String.split("要切割的准侧").length 返回的是这个String被切割后的子字符串的个数(及被切割成了几个段);String.split(""),此时,切割后的第一个段是空字符串。
根据正则表达式对String中符合条件的进行替换的replaceAll();
public String replaceAll(String regex, String replacement);
String s = "hello62212934564347892xiexie13212345678go";
String ss = s.replaceAll("\\d+", "***");输出结果为:
hello***xiexie***go
相关文章推荐
- java关于正则相关的函数的应用--compile(),match(),find(),group(),
- Java学习笔记之正则表达式(二):正则表达式的应用
- 黑马程序员——基础学习(十)API中Arrays、Integer、正则表达式以及日期类的相关应用
- JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)
- 【java学习】正则表达式的应用
- 什么是正则表达式以及在Java1.4中的应用
- 正则表达式相关学习
- [原创]Java正则表达式应用-判断IPv4正确性
- JAVA中正则表达式的应用 (一)
- JAVA中正则表达式的应用 (一)
- Java 正则表达式学习总结和一些小例子
- javascript中正则表达式应用学习_test()
- javascript中正则表达式应用学习_match()
- 学习Java正则表达式
- java 学习笔记之正则表达式
- JAVA中正则表达式的应用-java.util.regex篇
- 什么是正则表达式以及在Java1.4中的应用
- JAVA中正则表达式的应用 (二)
- JAVA中正则表达式的应用 (一)
- JAVA中正则表达式的应用(二)