正则表达式快速入门

一、什么是正则表达式?

正则表达式(Regular Expression) : 是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式本身也是一个字符串,这个字符串由两种字符组成:

普通字符 :例如大、小写英文字母;数字等。
元字符 :被系统赋予特殊含义的字符。例如:^表示以某个字符串开始,$表示以某个字符串结束。

1、边界符

符号描述注释
^开始符按键为 Shift+6(如果放在[ ]里面表示取非,在linux中表示光标跳转到行首不为空的元素前)
$结束符按键为Shift+4(如果在linux中,则表示当前行中的光标跳转到行尾)
[ ]单字符匹配一个字母
( )分组匹配这个表达式的字符保存到一个临时区域
-区间符如:a-z、A-Z、0-9 等

2、转义符

符号描述注释
\b匹配一个单词边界,大写B表示匹配非单词边界Break、打破,单词的边界
\w匹配包括下划线的任何单词字符。大写W类似[^A-Za-z0-9_]Word、单词字符数字的组合
\d匹配一个数字字符,大写D类似[^0-9]Digit、数字
\s匹配任何不可见字符,包括空格、制表符、换页符等等,S表示非空白符Space、空格
\t匹配一个制表符Table、制表符
\n匹配一个换行符NewLine、换行
\r匹配一个回车符Return、回车

3、计量符

符号描述注释
*匹配前面的子表达式任意次(贪婪) 重复0次或更多次,eg:文件选择器 *.png
+匹配前面的子表达式一次或多次(大于等于1次)等价于{1,}。(懒惰) 重复1次或更多次(至少重复一次),eg:网页中的计数 1W+
匹配前面的子表达式零次或一次。等价于{0,1}。(占位) 重复0次或者1次(可有可无),java中预编译语句集
{n}匹配确定的n次重复n次
{n,m}m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次重复n到m次(至少n次,至多m次)
{n,}n是一个非负整数。至少匹配n次。重复n次躲着更多次(大于等于n次)

4、逻辑符

符号描述注释
|逻辑或将两个匹配条件进行逻辑或(Or)运算
=逻辑等于(环视肯定顺序)
逻辑非(环视否定顺序)
<=环视肯定逆序
<!环视否定逆序

二、正则表达式引擎的内部工作机制

总是从左到右依次匹配

三、正则表达式的应用实例

  1. 匹配html标签: <[^>]+>
  2. 匹配中文字符 [\u4E00-\u9FA5]
  3. 验证用户名和密码:(”^[a-zA-Z]\w{5,15}$”)正确格式:”[A-Z][a-z]_[0-9]”组成,并且第一个字必须为字母6~16位
  4. 验证手机号码:^1[3|4|5|7|8][0-9]{9}$
  5. java中的用法:
    去掉url地址的后缀.action

    String servletName=”http://localhost:8080/test/dopng.action;”
    //第一个\表示转义字符\,第二个表示转义.,因为在正则表达式中一 个.表示任意字符
    String url = servletName.replaceAll(“\\.action”,”“);

本文基于咕泡学院公开课视频所写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值