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正则表达式中使用两个\\符号是因为有一个“\”是转义字符。