正则表达式(Java),
分享于 点击 11147 次 点评:265
正则表达式(Java),
正则表达式
介绍:实际应用中,我们经常会用到需要匹配、查找、替换、判断字符串的情况,正则表达式是解决这类问题的主要手段。正则表达式是一种字符串的语法规则,是一种可以用于模式匹配和替换的规则,主要用于文本和字符串处理。
1、元字符
元字符 | 写法 | 意义 |
---|---|---|
. | . | 任何一个字符 |
\d | \\d | 0~9的任何一个数字 |
\D | \\D | 任何一个非数字字符 |
\s | \\s | 空格类字符,‘\t’、‘\n’、‘\x0B’、‘\f’、‘\r’ |
\S | \\S | 非空格类字符 |
\w | \\w | 可用于标识符的字符(不包含美元符号) |
\W | \\W | 不能用于标识符的字符 |
\p{Lower} | \\p{Lower} | <小写字母[a-z] |
\p{Upper} | \\p{Upper} | 大写字母[A-Z] |
\p{ASCII} | \\p{ASCII} | ASCII字符 |
\p{Alpha} | \\p{Alpha} | 字母 |
\p{digit} | \\p{digit} | 数字字符[0-9] |
\p{Alnum} | \\p{Alnum} | 字母或数字 |
\p{Punct} | \\p{Punct} | 标点符号 |
\p{graph} | \\p{graph} | 可视字符,\p{Alnum}\p{Punct} |
\p{Print} | \\p{Print} | 可打印字符,\p{graph} |
\p{Blank} | \\p{Blank} | 空格或制表符 |
\p{Cntrl} | \\p{Cntrl} | 控制字符[\x00-\x1F\x7F] |
例:使用正则表达式判断给定的字符串是否符合格式:大写字母+3个小写字符+3个数组
public class Main{
public static void main(String[] args) {
String regex = "\\p{Upper}\\p{Lower}\\p{Lower}\\p{Lower}\\d\\d\\d";
String[] msg = {"ABCd001", "Abcd002"};
for (int i = 0; i < msg.length; i++)
System.out.println(msg[i] + (msg[i].matches(regex) ? "合法" : "不合法"));
}
}
结果:
2、” [ ] ” 符
方括号元字符 | 含义 |
---|---|
[abcde] | 匹配a、b、c、d、e中的任意一个字符 |
[a-h] | 匹配a-h之间的任意一个字符 |
[^fgh] | 不与f、g、h中的任意一个字符匹配 |
a-d[m-p] | 代表a-d,或m-p中的任何一个字符(并) |
a-z&&[def] | 代表d、e、f中的任意一个字符(交) |
a-f&&[^bc] | 代表a、d、e、f(差) |
3、限定符
带限定符号的模式 | 含义 |
---|---|
X? | X出现0次或一次 |
X* | X出现0次或多次 |
X+ | X出现1次或多次 |
X{n} | X出现n次 |
X{n,} | X至少出现n次 |
X{n,m} | X出现n至m次 |
XY | X后跟Y |
X | Y | X或Y |
例:通过正则表达式判断手机号是否合法
说明:手机号码前三位有13+任意数字,15+0、3、6~9任意一位,18+6、8、9任意一位;后8位为任意数字。
public class Main{
public static void main(String[] args) {
String regex = "(13\\d|15[036-9]|18[689])\\d{8}";
String[] msg = {"987654321", "12345678901", "18612345678"};
for (int i = 0; i < msg.length; i++)
System.out.println(msg[i] + (msg[i].matches(regex) ? "合法" : "不合法"));
}
}
结果:
ps:更复杂的还要多练习才能掌握哦 ^_^
相关文章
- 暂无相关文章
用户点评