正则表达式

最近要写作业,就把老师的ppt和各个大佬笔记总结了一下。关于正则表达式自己的一些理解,有错误的地方还待大佬改正

1.概念

  正则表达式是用一个字符串来描述一个特征,然后去验证另一个字符串是否符合这个特征

2.规则

  (1)位置字符

    (1.1)^

          匹配一个位置,用来匹配一个行的开头

    (1.2)$

          匹配一个位置,用来匹配一个行的结尾

    (1.3)\b

          匹配一个位置,匹配单词的开始和结尾,但是它不可以空格、标点符号或者换行符号

  (2)字符(的)字符

    (2.1).(点)

          匹配字符的元字符;匹配除换行符之外的任意字符

    (2.2)\w

          匹配字符的元字符,匹配单词字符(字母,汉字,下划线和数字)

    (2.3)\W

          匹配字符的元字符,匹配任意非单词字符

    (2.4)s\

          匹配字符的元字符;匹配任意空白字符,如空格、制表符、换行符等

   (2.5)S\

          匹配字符的元字符;匹配非空白字符

    (2.6)\d

          匹配字符的元字符;匹配任意数字字符  [0-9]

      (2.7) \D

          匹配字符的元字符;匹配非数字字符

  (3)一定的组合规则

    (3.1)字符类可以在[]中定义

          比如[abcd]表示abcd 中的任何一个

          [^b]表示除去b之外的任意字符(这里^表示非)

    (3.2)字符转义

          以上提到的.,$等都有特定的含义,如果想要匹配的字符中本身需要含有这些字符,就需要转义字符

          \r,\n表示回车和换行符

          \t表示制表符

          \\ 表示\本身

          \^表示^本身

          \$表示$本身

          \.表示.本身

          \\?表示?本身

    (3.3)限定符

          以上的正则表达式的元字符一次只能匹配一个位置或是一个字符,如果需要匹配零个一个或者多个字符,则需要使用限定符

          *表示零个或者多个(限定它前面的字符)

          +表示一个或者多个(限定它前面的字符)

          ?表示零个或者一个(限定它前面的字符)

          {n}具体限定几次

          {n,}至少n次

          {n,m}n<m,表示至少n次之多m次

  (4)匹配方式

       一般来说都是贪婪匹配,如果在字符类后加一个?就是惰性匹配

    (4.1)惰性匹配

          趋向于最小长度的匹配。先看字符串中的第一个字母是不是匹配,如果不够就读入下一个字符,如果还没有,就不断读入后续的字符,直到发现一个合适的匹配,然后开始下一次的匹配。(这里的下一次与接下来说的group有所联系)

    (4.2)贪婪匹配

          趋向于最大长度的匹配。先看整个的字符串是不是一个匹配,如果没有发现,去掉最后一个字符并再次进行尝试。这个过程不断重复知道发现匹配或者一个字符都不剩为止

    (4.3)支配性匹配

          只尝试匹配整个字符串,如果没有发现匹配,则不再尝试

3.Java method

  (1) String 中的matches 方法

  (2)Pattern和Matcher class

       直接上用法

      

 

 

 

发布了1 篇原创文章 · 获赞 0 · 访问量 14
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览