您的位置:首页 > 编程语言 > Java开发

正则表达式学习与应用及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);
String s = "hello62212934564347892xiexie13212345678go";
String ss = s.replaceAll("\\d+", "***");
输出结果为:
hello***xiexie***go
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: