java数字正则表达式-正则表达式 java
一、概念
正则表达式,又称正则表达式。 (英文:Regular Expression,在代码中常简称为regex、regexp或RE),计算机科学中的一个概念。 正则表达式通常用于检索和替换与特定模式(规则)匹配的文本。 很多语言都支持正则表达式,比如Perl、PHP、Java、Python、Ruby等。当然在Java中,你也可以通过处理字符串的方式来检索和替换文本字符串,但是用正则表达式编写代码更加简洁。 通常,两三行代码就可以达到目的。 当然,这也是建立在熟悉正则表达式的基础上的。 基于表达式。
二、正则表达式的规则
1.任意字符表示匹配任意对应的字符java数字正则表达式,比如a匹配a,7匹配7,-匹配-。
2、[]表示匹配方括号中的任意一个字符,如[abc]匹配a或b或c。
3.-括号内和outside意思不同,如outside匹配-,if括号内的[ab]表示匹配26个小写字母中的任意一个; [a-zA-Z]匹配大小写共52个字母中的任意一个; [0-9] 匹配十个数字中的任何一个。
4、方括号内的^和括号外的^含义不同。 如果它在外面,那就意味着开始。 例如^7[0-9]表示匹配以7开头,第二位为任意数字的字符串; 如果在括号内,则表示匹配除此字符以外的任意字符(包括数字和特殊字符),如[^abc]表示匹配除abc以外的任意字符。
5.. 表示匹配任意字符。
6. \d 代表一个数字。
7. \D 表示不是数字。
8.\s表示由空字符组成,[\t\n\r\x\f]。
9.\S表示由非空字符组成,[^\s]。
10.\w代表字母、数字、下划线、[a-zA-Z0-9_]。
11.\W表示不是由字母、数字、下划线组成。
12.?:表示出现 0 次或 1 次。
13.+ 表示出现 1 次或多次。
14.* 表示出现 0 次、1 次或多次。
15. {n}表示n次。
16.{n,m}表示出现n~m次。
17. {n,}表示n次或n次以上。
18.XY表示X后面跟着Y,其中X和Y分别是正则表达式的一部分。
19、X|Y表示X或Y,如“food|f”匹配foo(d或f),“(food)|f”匹配food或f。
20. (X)子表达式,把X看成一个整体。
2. Java正则表达式的写法
java中调用正则表达式的类有java.util.regex.Matcher和java.util.regex.Pattern,从jdk1.4开始提供了java.util.regex包。 有几种使用正则表达式的方法。
1.只是匹配
1). 实现方法 1、匹配一个号码。
公共无效正则表达式1(){
// 要匹配的字符
字符串 str = "8";
// 正则表达式
字符串正则表达式 = "[0-9]";
//返回匹配结果,匹配成功返回true,匹配失败返回false,本次匹配返回true。
布尔标志 = 模式。 匹配(正则表达式,海峡);
System.out.println(标志);
}
2). 实现方法二,匹配3到5个字母,不分大小写java数字正则表达式,包括3和5。
公共无效正则表达式2(){
// 要匹配的字符
String str = "你好";
// 正则表达式
字符串正则表达式 = "[a-zA-Z]{3,5}";
//输出匹配结果,本次匹配返回true。
System.out.println(str.matches(regex));
}
3). 实现方式3(这种实现方式最快),匹配11位电话号码,匹配规则:第一个数字为1,第二个数字为2、3、7、8中的任意一个,后面的9 4不是包含在数字中。
公共无效正则表达式3(){
// 要匹配的字符
字符串 str = "15387295596";
// 正则表达式
字符串正则表达式 = "1[2378][0-35-9]{9}";
// 将给定的正则表达式编译成一个模式。 如果匹配需求很多,需要用同一个regex来匹配,可以把这句话写在static模块中,使用的时候直接使用实例p
模式 p = Pattern.compile(regex);
//创建一个匹配给定输入与此模式的匹配器。
匹配器 m = p。 匹配器(str);
// 尝试将整个区域与模式匹配。
布尔标志 = m。 火柴();
//输出匹配结果,这次结果为真
System.out.println(标志);
}
2. 更换。
公共无效正则表达式替换(){
// 要匹配的字符
字符串 str = "12a6B985Ccv65";
// 正则表达式
字符串正则表达式 = "[a-zA-Z]+";
// 正则表达式
字符串 regex2 = "\\d+";
//用&符号替换字符串中的中英文字母,输出12&6&985&65
System.out.println(str.replaceAll(regex, "&"));
//用0替换字符串中的单个数字或连续数字,输出0a0B0Ccv0
System.out.println(str.replaceAll(regex2,"0"));
}
3.剪切,将字符串按照大写字母剪切。
public void outputStr() {
String str = "oneTtowTthreeDfourJfive";
字符串正则表达式 = "[AZ]";
字符串[] arr = str。 拆分(正则表达式);
对于(字符串 s:arr){
System.out.print(s + " ");
}
}
输出:一拖三四五
2019-07-14