元字符-字符匹配符
符号 |
作用 |
示例 |
解释 |
[ ] |
可接收的字符列表 |
[abcd] |
a、b、c、d中的任意一个字符 |
[^] |
不可接收的字符列表 |
[^abc] |
除了a、b、c之外的任意一个字符,包括数字和特殊符号 |
- |
连字符 |
A-Z |
任意单个大写字母 |
符号 |
含义 |
示例 |
说明 |
匹配输入 |
. |
匹配除\n以外的任何字符 |
a..b |
以a开头,b结尾,中间包括2个任意字符的长度为4的字符串 |
aaab、abcb、a12b、a*#b |
\d |
匹配单个数字字符,相当于[0-9] |
\d{3}(\d)? |
包含3个或4个数字的字符串 |
123、4567 |
\D |
匹配单个非数字字符,相当于[^0-9] |
\D(\d)* |
以单个非数字字符开头,后接任意个数的字符串 |
a、A123 |
\w |
匹配单个数字,大小写字母字符,相当于[0-9 a-z A-Z] |
\d{3}\\w{4} |
以3个数字字符开头的长度为7的数字字母字符串 |
12345ab、789abcd |
\W |
匹配单个非数字,大小写字母字符,相当于[^0-9 a-z A-Z] |
\W+\d{2} |
以至少一个非数字字母字符开头,2个数字字符结尾的字符串 |
#11、@?20 |
演示字符匹配符的使用
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp03 {
public static void main(String[] args) {
String content = "a11c8abc _ABCy @";
//String regStr = "[a-z]";//匹配 a-z 之间任意一个字符
//String regStr = "[A-Z]";//匹配 A-Z 之间任意一个字符
//String regStr = "abc";//匹配 abc 字符串[默认区分大小写]
//String regStr = "(?i)abc";//匹配 abc 字符串[不区分大小写]
//String regStr = "[0-9]";//匹配 0-9 之间任意一个字符
//String regStr = "[^a-z]";//匹配 不在 a-z 之间任意一个字符
//String regStr = "[^0-9]";//匹配 不在 0-9 之间任意一个字符
//String regStr = "[abcd]";//匹配 在 abcd 中任意一个字符
//String regStr = "\\D";//匹配 不在 0-9 的任意一个字符
//String regStr = "\\w";//匹配 大小写英文字母, 数字,下划线
//String regStr = "\\W";//匹配 等价于 [^a-zA-Z0-9_]
//\\s 匹配任何空白字符(空格,制表符等)
//String regStr = "\\s";
//\\S 匹配任何非空白字符 ,和\\s 刚好相反
//String regStr = "\\S";
//. 匹配出 \n 之外的所有字符,如果要匹配.本身则需要使用 \\. String regStr = ".";
//说明
//1. 当创建 Pattern 对象时,指定 Pattern.CASE_INSENSITIVE, 表示匹配是不区分字母大小写. Pattern pattern = Pattern.compile(regStr/*, Pattern.CASE_INSENSITIVE*/);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到 " + matcher.group(0));
}
}
}
元字符-选择匹配符
在匹配某个字符串的时候是选择性的。即:既可以匹配这个,也可以匹配那个,只是需要用到选择匹配符 |
符号
|
符号
|
示例
|
解释
|
|
|
匹配"|"之前或者之后的表达式
|
ab|cd
|
ab或者cd |
演示选择匹配符的使用
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExp04 {
public static void main(String[] args) {
String content = "hanshunping 韩 寒冷";
String regStr = "han|韩|寒";
Pattern pattern = Pattern.compile(regStr/*, Pattern.CASE_INSENSITIVE*/);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println("找到 " + matcher.group(0));
}
}
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)