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)
Previous: 日期操作
Next: StringBuilder类