正则表达式快速入门

来源:互联网 发布:软件项目开发过程管理 编辑:程序博客网 时间:2024/06/07 06:10

一、什么是正则表达式?

正则表达式(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”,”“);

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

原创粉丝点击