Java总结-正则表达式



正则表达式:
专门用于操作字符串的规则。
将一些操作代码通过一些符号体现。
好处:
1,方便了程序的编写。
2,可以用于对字符串的复杂操作。
弊端:
阅读性较差。


常用规则:
[]:限定某一位字符内容范围。
比如: [abc]:该位字符只能出现a或者b或者c。
[a-z]:改为字符只要是小写字母中的一个即可。
{}:限定前一个字符或者正则规则内容出现的次数。
比如: {3}:出现3次。
{3,}:至少出现3次。
{3,7}:出现3到7次。

数量规则:
?:出现一次或者0次。
* :出现了0次或者多次。
+ :出现1次或者多次。

字符规则:
\d: [0-9],数字。
\D: [^0-9],非数字。
\w: [a-zA-Z0-9_]
\b: 单词边界。
\s: 空格,tab,\r \n.

组规则:
可以将正则表达式的结果通过()进行封装,以便于该规则内容被重用
技巧:当出现了嵌套组的时候,通过左括号来进行编号的判断。该编号从1开始。

如果使用已定好的组呢?
通过\n形式,反向引用组。()\\1+。

特殊:
$ : 代表是行结束。
^ : 行开始。
. : 代表任意字符。


--------
对字符串操作的常见功能。
1,匹配。String matches(regex);其实最终使用的是Matcher匹配器对象。
需求:判断QQ号码。5~15 0不可以开头。
qq.matches("[1-9]\\d{4,14}");

2,切割:String split(regex);
需求:如果想通过 . 的形式起个字符串。
split("\\.");

3,替换:String replaceAll(regex,str);
在regex表达式中使用了组。那么可以在str中的通过 $编号 的形式获取regex中的组。
需求:如果想将符合规则的内容替换成一个$符号。
replaceAll(regex,"\\$");
需求:替换叠词,用叠词中的一个替换全部。
s.replaceAll("(.)\\1+","$1");

4,查找:涉及到java.util.regex包中两个对象。Pattern ,Matcher。
1,将正则规则封装成Pattern对象。Pattern p = Pattern.compile(regex);
2,将规则对象和要作用的字符串相关联,获取匹配器对象。Matcher m = p.matcher(str);
3,通过匹配器对象find()将规则去操作字符串,如果找到返回true。
在通过group()方法获取找到符合规则的内容。


练习:
1,获取一段英文有三个字母组成的单词。
2,操作一组ip地址,按ip地址顺序排序。
3,Email规则。/*[a-zA-Z0-9_]*/ "\\w{6,12}@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+"
4,网页爬虫。
遍历网页中的文本,将符合规则的信息获取。

应用场景:
注册表单的校验。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值