正则表达式

52-正则表达式

判断是否符合正则表达式

String s = "www.FoxDevelop.com";
boolean b = s.matches("正则表达式");Code language: JavaScript (javascript)

我们怎么知道这是一个合法手机号码?比如 12345678901,这个时候使用正则表达式可以去判断一些字符串是否符合某种形式。

正则表达式由一些含有特殊意义的字符组合的字符串组成,这些特殊意义的字符称为元字符。

正则表达式的限定符

String s = "A0";
boolean b = s.matches("A?0"); //正则表达式其实也是字符串来的
System.out.println(b);Code language: JavaScript (javascript)
String s = "www.FoxDevelop.com";
// \\ -> \  【\.】标识正则表达式里面的转义 他就是一个点号 而不是正则里的任意字符
boolean b = s.matches("w{3}\\.\\w{4}\\.\\w{2}"); //在字符串里面 两个反斜杠标识一个反斜杠 需要转义
System.out.println(b);Code language: JavaScript (javascript)

方括号元字符

中括号标识里面的一个字符:

String s = "a";
boolean b = s.matches("[bcdefg]"); //标识s里面出现了bcdefg里面的任意一个字符
System.out.println(b);Code language: JavaScript (javascript)

练一练:验证手机号码

手机号码规则:1开头,第二位为3/5/7/8,后面跟9位数字,一共11位。

String s = "12645345432";
boolean b = s.matches("1[3578]\\d{9}");
System.out.println(b);Code language: JavaScript (javascript)

53-练习-使用正则表达式统计汉字个数

汉字的字符范围是 [\u4e00-\u9fa5]。直接使用for来对字符串进行遍历,遍历的每个值就是字符。

import java.util.regex.Pattern;

public static void main(String[] args) {
	String s = "hello what 你好 北美网校 哈哈 123 (&*&HOlknfd";
	int count = 0;
	for (int i = 0; i < s.length(); i++) {
		char c = s.charAt(i);
		boolean b = Pattern.matches("^[\u4e00-\u9FA5]$", c + "");
		if (b) {
			count++;
		}
	}
	System.out.println(count);
}Code language: JavaScript (javascript)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注