java Regex正则表达式使用太常见了,也比较的简单,因此我们必须要掌握Regex正则表达式的使用方法,下面来简单学习下。
范围用连-字符表示。
例如,[A-Z]代表任何大写英文字母; “0-9”表示0到9之间的数字。
^ 表示 “非” 的意思
例如,[^ABC]指除A,B和C之外的任何字符。
字符类[^A-Z]表示除大写字母之外的任何字符。
如果^出现在字符类中,除了开头,它只表示一个^字符。
例如,“[ABC ^]” 将表示A,B,C或^。
您还可以在一个字符类中包含两个或多个范围。例如,[a-zA-Z]匹配任何字符a到z和A到Z。
[a-zA-Z0-9] 匹配任何字符a到z(大小写)和任何数字0到9。
下表列出了字符类regex正则表达式的示例
| regex正则 | 含义 |
|---|---|
| [abc] | 表示匹配 a, b, 或 c 中的任何一个都可以 |
| [^xyz] | 表示匹配除了x, y, z之外的字符 |
| [a-z] | 表示匹配任何26个小写字母 |
| [a-cx-z] | 表示a到c或者x到z,包括a,c,x,z字符 |
| [0-9&&[4-8]] | 表示两个范围之内的字符 (4, 5, 6, 7, 或 8) |
| [a-z&&[^aeiou]] | 表示匹配除了aeiou元音之外的任何小写字母 |
下列是预定义类正则表达式,如下。
| regex表达式 | 含义 |
|---|---|
| . | 表示任何字符 |
| \d | 表示0到9之间的任何一个数字,和 [0-9] 表达式一样 |
| \D | 非数字,和 [^0-9] 表达式一样 |
| \s | 一个空白字符,这几个都属于空白字符 [ \t\n\x0B\f\r] 分部是
|
| \S | 一个非空格字符,与[^\s] 相同 |
| \w | 一个任何数字字母的字符,和[a-zA-Z_0-9]一样 |
| \W | 非字符,与[^\w]一样 |
下面用两个简单来学习如何使用regex正则表达式,案例一,匹配字符串中的数字,如下。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String args[]) {
//Pattern定义正则表达式
Pattern p = Pattern.compile("Java \\d");
//定义字符串
String str = "Java 4";
//正则表达式匹配str字符串
Matcher matcher = p.matcher(str);
//如果匹配,则返回true,matcher.find()返回boolean值
if (matcher != null){
System.out.println(matcher.find());
}
}
}
输出结果为true案例二,匹配字符串中的所有字符,\w+ 后面的+表示一个或多个,如下。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String args[]) {
String regex = "\\w+";
Pattern pattern = Pattern.compile(regex);
String str = "asdf tpyyes.com";
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
//matcher.group(0)获取匹配的第0组字符串
System.out.println("返回 0:" + matcher.group(0));
}
}
}
返回结果的结果是"返回 0:asdf"注意:regex正则表达式中使用两个\\符号是因为有一个“\”是转义字符。