正则表达式(regexp)

目录

1.正则表达式

2.String 支持正则表达式方法

3.java.util.regex 包主要包括以下三个类:

3.1Pattern 类:

3.2Matcher 类:

3.3PatternSyntaxException:

4.正则表达式基本语法规则


1.正则表达式

定义了字符串的模式,本质是一种特殊的字符串对象

2.String 支持正则表达式方法

.replaceAll() .replaceFirst() .split().matches()

3.java.util.regex 包主要包括以下三个类:

3.1Pattern 类:

pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达 式作为它的第一个参数

3.2Matcher 类:

Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。 .find() 方法,如果有匹配结果,则返回true .group() ,返回匹配的结果内容

3.3PatternSyntaxException:

PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模 式中的语法错误。

4.正则表达式基本语法规则

 


// + 代表前边元字符次数{1,}
// * 代表前边元字符次数{0,}
// . 代表一个任意符号 ... 李. .* .{0,} ".*[a-z]+.*"
// ? [a-c]? [a-c]{0,1}
// ^ 开头
// $ 结尾

(1)\d*   匹配重复0次或多次数字   例如:可能为空 或 任意数字 (2,3。。。。)

(2)\d+ 匹配重复1次或多次数字    例如:可能为1个或多个数字 1,23,234,2345,........

(3)\d? 匹配重复次个或者一次数字  例如:可能为空或者任意的一个数字(1,2,。。。)

(4)\d{8}匹配重复8次数字     例如:123456768

(5)\d{4,}匹配重复至少4次数字 例如:1234,12345,124244,。。。。。

(6)^\d{8,11}$ 匹配重复8-11次数字 例如:12345678,123456789,1234567890,12345678901

//判断汉字
[\u4e00-\u9fa5]{1,}   //代表汉字[\u4e00-\u9fa5]  {1,}一个或多个 


//大写字母 小写字母
[A-Z]  [a-z]


//数字
\d     //代表一个数字
\d+   //代表一个或多个数字
\d{3} //代表三个数字


{n} n个
{n,} n个或多个
{n,m} 

//. 判断一个字符串是不是标准的手机号
("1[3,5]\\d{9}");    [3,5,8]表示3,5,8其中一个数字  [0-9]  0到9

5.正则表达式分组

 //2. 判断字符串有没有数字 把数字显示出来
        String str = "huxinwie1jah14125asjf";
        Pattern pattern = Pattern.compile("\\d+");
        Matcher a =  pattern.matcher(str);
        System.out.println(a.find());
        while (a.find()){
            System.out.print(a.group());
        }

 判断字符串有没有数字
bolean a.find() 

7.常用的正则

常用的实用正则表达式整理(摘自自学编程网)

        只能输入数字:"^[0-9]*$"。

只能输入n位的数字:"^"d{n}$"。

只能输入至少n位的数字:"^"d{n,}$"。

只能输入m~n位的数字:。"^"d{m,n}$"

只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。

只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。

只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。

只能输入非零的正整数:"^"+?[1-9][0-9]*$"。

只能输入非零的负整数:"^"-[1-9][]0-9"*$。

只能输入长度为3的字符:"^.{3}$"。

只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。

只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。

只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。

只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。

只能输入由数字、26个英文字母或者下划线组成的字符串:"^"w+$"。

验证用户密码:"^[a-zA-Z]"w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

验证是否含有^%&’,;=?$""等字符:"[^%&’,;=?$"x22]+"。

只能输入汉字:"^["u4e00-"u9fa5]{0,}$"

验证Email地址:"/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/"。

验证InternetURL:"^http://(["w-]+".)+["w-]+(/["w-./?%&=]*)?$"。

验证电话号码:"^("("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。

验证身份证号(15位或18位数字):"^"d{15}|"d{18}$"。

验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。

验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值