Java正则表达式-元字符
元字符是Java正则表达式中具有特殊含义的字符。
Java中的正则表达式支持的元字符如下:
()[] {{\ ^ $ | ?* +。<>-=!
1 Character类
元字符[
并]
在正则表达式内指定字符类。
字符类是一组字符。正则表达式引擎将尝试匹配集合中的一个字符。
字符类“ [ABC]”将匹配字符A,B或C。例如,字符串“ woman”或“ women”将匹配正则表达式“ wom [ae] n”。
我们可以使用字符类来指定字符范围。
该范围使用连-
字符表示。
例如,[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的任何数字。
下表提供了字符类的示例
字符a到z
角色类 | 含义 |
---|---|
[abc] | 字符a,b或c |
[^ xyz] | x,y和z以外的字符 |
[az] | |
[a-cx-z] | 字符a到c或x到z,其中包括a,b,c,x,y或z。 |
[0-9 && [4-8]] | 两个范围的交集(4、5、6、7或8) |
[az && [^ aeiou]] | 所有小写字母减元音 |
2 预定义字符类
下表列出了一些常用的预定义字符类。
预定义
字符
类
含义 | |
---|---|
。 | 任何字符 |
\ d | 一个数字。与[0-9]相同 |
\ D | 一个非数字。与[^ 0-9]相同 |
\ s | 空格字符。与[\ t \ n \ x0B \ f \ r]相同。
|
\ S | 非空白字符。与[^ \ s]相同 |
\ w | 文字字符。与[a-zA-Z_0-9]相同。 |
\ W | 非单词字符。与[^ \ w]相同 |
3 示例1
以下代码用于\d
匹配所有数字。
\\d
在字符串中使用来转义\
。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String args[]) {
Pattern p = Pattern.compile("Java \\d");
String candidate = "Java 4";
Matcher m = p.matcher(candidate);
if (m != null)
System.out.println(m.find());
}
}
上面的代码生成以下结果。
true
2 示例2
import java.util.regex.Matcher;
import java.util.regex.Pattern;
// w w w. java2s . c om
public class Main {
public static void main(String args[]) {
String regex = "\\w+";
Pattern pattern = Pattern.compile(regex);
String candidate = "asdf Java2s.com";
Matcher matcher = pattern.matcher(candidate);
if (matcher.find()) {
System.out.println("GROUP 0:" + matcher.group(0));
}
}
}
上面的代码生成以下结果。
GROUP 0:asdf
热门文章
优秀文章