正则表达式

目录

      • 什么是正则表达式
      • 正则表达式的语法
      • 使用正则表达式校验字符串

什么是正则表达式

  • 简单说就是一组规则,类似日期格式化设置模式 yyyy-MM-dd
  • 不是Java特有的一个东西,不同的开发语言有不同程度的支持
  • 一般用在字符串中,搜索是否有符合规则的字符串,如果有则匹配成功,如果没有则匹配失败。

正则表达式的语法

方括号:方括号用于查找某个范围内的单个字符

表达式 描述
[abc] 匹配方括号之间的任意单个字符。
[^abc] 匹配任何不在方括号之间的单个字符。
[0-9] 匹配任何从 0 至 9 的单个数字
[a-z] 匹配任何从小写 a 到小写 z 的单个字符
[A-Z] 匹配任何从大写 A 到大写 Z 的字符

元字符:(Metacharacter)是拥有特殊含义的字符 (斜杠前加一个斜杠转义斜杠

元字符 描述
. 匹配单个字符,除了换行和行结束符
\w 匹配单词字符。 (除了下划线以外的特殊字符都不符合)
\W 匹配非单词字符
\d 匹配数字
\D 匹配非数字字符
\s 匹配空白字符
\S 匹配非空白字符
\t 匹配制表符

量词:匹配出现的个数

量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 到 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。

使用正则表达式校验字符串

boolean matches(String regex) 
String replaceAll(String regex, String replacement) 
String[] split(String regex)分割

代码示例

	public static void main(String[] args) {
		test01();
		/**
		 * 匹配手机号码.
		 * 作业:测试一个邮箱.   [email protected]
		 */
		String reg = "^[1][356789]\\d{9}$";		//以1开头,第二位数字范围,以9个任意数字结尾
		String str = "15623088895";
		boolean m = str.matches(reg);			//执行规则
		if (m) {
			System.out.println("是一个手机号码");
		}else{
			System.out.println("不是一个手机号码");
		}
	}

	private static void test01() {
		String reg1 = "[^abcdefg]";		//定义一个规则.
		String reg2 = "[a-z]"; 			//匹配小写a-z任意一个字符
		String reg3 = "\\d";			//表示匹配数字,第一个斜杠代表转义
		String reg4 = "\\w";			//表示匹配单词字符,除了特殊字符之外,其他都是单词字符,下划线除外.
		String reg5 = "123*";
		String str = "12";				// 给定一个内容
		boolean m = str.matches(reg5);	// 执行规则
		System.out.println(m);
	}

你可能感兴趣的:(笔记总结,正则表达式,java,开发语言)