1.什么是正则表达式?
正则表达式定义字符串的搜索模式
正则表达式的英文全称是regular expression。搜索模式可以是简单字符,固定字符串或包含描述模式的特殊字符的复杂表达式的任何内容
由正则表达式定义的 pattern 可以同时匹配一个或多个,或者一个都没匹配到
正则表达式可用于搜索,编辑和操作文本
使用正则表达式分析或修改文本的过程称为:正则表达式应用于文本/字符串
由正则表达式定义的模式从左到右应用于文本。一旦源字符在匹配中被使用,就不能重复使用。
2.正则表达式作用:
在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。
3.基础知识:
符号 | 说明 |
---|---|
. | 匹配一个字符 |
* | 0 或者n个字符 |
+ | 1个及以上字符 |
? | 1个或者0个 |
^ | 位于[]中表示取反,位于[]外面表示一行的开头 |
$ | 一行的结尾 |
- | 范围 |
I | 或者 |
&& | 且 |
\d | 一个数字,同[0-9] |
\D | 非数字,同[^0-9] |
\s | 空白字符,[ \t\n\x0B\f\r] |
\S | 非空白符 |
\w | 大小写字母和下斜杠,同[a-zA-Z_0-9] |
\W | [^\w] |
\b | 一个单词的边界 |
{n} | 出现n次 |
{n,} | 至少出现n次 |
{n,m} | n到m次 |
[n-m] | n到m中的一个 |
[abc] | abc中的一个 |
[^abc] | 除abc外的任意一个 |
[a-zA-Z] | 大写字母或者小写字母中的一个,同[a-z] |
[a-z&&[eFG]] | 小写字母并且是eFG中的一个 |
4.案例演示:
正则表达式校验qq号:
import java.util.Scanner;
/*
* 正则表达式校验qq号;
* 要求:1.不能以0开头;2必须是5到12位;
*
*/
public class CheckQQ {
public static void main(String[] args) {
while(true){
Scanner in=new Scanner(System.in);
System.out.println("请输入您的qq号:");
String qq=in.next();
String regx="[1-9][0-9]{4,11}";
boolean tr=qq.matches(regx);
if(!tr)
System.out.println(qq+" 是不合法的!");
else{
System.out.println("输入正确!");
break;
}
}
}
}