Java正则表达式
Java正则表达式是一种特殊的字符串模式,用于匹配和搜索字符串。它在Java中的实现是通过java.util.regexp包中的正则表达式引擎。
以下是Java正则表达式的一些常用元字符和语法:
- 匹配数字:\d
- 匹配非数字:\D
- 匹配空白字符:\s
- 匹配非空白字符:\S
- 匹配单词字符(字母、数字、下划线):\w
- 匹配非单词字符:\W
- 匹配任意字符(除换行符):.
- 匹配零次或多次:*
- 匹配一次或多次:+
- 匹配零次或一次:?
- 匹配指定次数:{n}
- 匹配最少n次:{n,}
- 匹配n至m次:{n,m}
- 匹配以指定字符开头:^
- 匹配以指定字符结尾:$
- 匹配分组:()
- 匹配或:|
- 匹配非:^(在[]内)
- 匹配范围(字符集):[abc](匹配a、b、c中的任意一个字符)
- 匹配范围(连字符):[a-z](匹配a-z之间的任意一个小写字母)
- 匹配范围(否定):[^abc](匹配除了a、b、c之外的任意一个字符)
- 匹配单词边界:\b
- 匹配非单词边界:\B
- 匹配换行符:\n
- 匹配回车符:\r
- 匹配制表符:\t
- 匹配退格符:\b
- 匹配任意数字:[0-9]
- 匹配任意字母:[a-zA-Z]
- 匹配任意小写字母:[a-z]
- 匹配任意大写字母:[A-Z]
- 匹配任意数字和字母:[a-zA-Z0-9]
- 匹配任意非数字和字母:[^a-zA-Z0-9]
- 匹配邮箱地址:\w+@[a-zA-Z0-9]+.[a-zA-Z]{2,}
- 匹配手机号码:1[3-9]\d{9}
- 匹配IP地址:\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
在Java中,可以使用Pattern类和Matcher类来实现正则表达式的匹配。
Pattern类表示一个正则表达式,其中包含compile()方法,用于编译正则表达式,并返回一个Pattern对象。
Matcher类表示一个匹配器,其中包含find()、group()等方法,用于在给定的输入字符串中查找和获取匹配的字符串。
Java正则表达式非常灵活,对匹配字符串有很高的精度要求,可以用于多种应用程序中,例如文本处理、搜索、替换等。
数值实例:
1、整数
public static final String intege = "^-?[1-9]\\d*$/";
// 输出实例
System.out.println(Pattern.matches(intege,"123"));
System.out.println(Pattern.matches(intege,"-123"));
2、正整数
public static final String intege1 = "^[1-9]\\d*$/";
// 输出实例
System.out.println(Pattern.matches(intege1,"123"));
3、负整数
public static final String intege2 = "^-[1-9]\\d*$/";
// 输出实例
System.out.println(Pattern.matches(intege2,"-123"));
4、数字
public static final String num = "^([+-]?)\\d*\\.?\\d+$/";
// 输出实例
System.out.println(Pattern.matches(num,"123"));
System.out.println(Pattern.matches("0"));
5、正数(正整数 + 0)
public static final String num1 = "^[1-9]\\d*|0$/";
// 输出实例
System.out.println(Pattern.matches(num1,"123"));
System.out.println(Pattern.matches(num1,"0"));
6、负数(负整数 + 0)
public static final String num2 = "^-[1-9]\\d*|0$/";
// 输出实例
System.out.println(Pattern.matches(num2,"-123"));
System.out.println(Pattern.matches(num2,"0"));
7、浮点数
public static final String decmal = "^([+-]?)\\d*\\.\\d+$/";
// 输出实例
System.out.println(Pattern.matches(decmal,"-0.1"));
System.out.println(Pattern.matches(decmal,"0.1"));
8、正浮点数
public static final String decmal1 = "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$";
// 输出实例
System.out.println(Pattern.matches(decmal1,"0.1"));
9、负浮点数
public static final String decmal2 = "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$";
// 输出实例
System.out.println(Pattern.matches(decmal2,"-0.1"));
10、浮点数
public static final String decmal3 = "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$";
// 输出实例
System.out.println(Pattern.matches(decmal3,"-0.1"));
System.out.println(Pattern.matches(decmal3,"0.1"));
11、非负浮点数(正浮点数 + 0
public static final String decmal4 = "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$";
// 输出实例
System.out.println(Pattern.matches(decmal4,"0.1"));
12、非正浮点数(负浮点数 + 0)
public static final String decmal5 = "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$";
// 输出实例
System.out.println(Pattern.matches(decmal5,"-0.1"));