黑马程序员技术交流社区

标题: 记住的正则,又忘了!!! [打印本页]

作者: 15572805799    时间: 2016-12-6 13:48
标题: 记住的正则,又忘了!!!
{:8_525:}{:8_530:}# 正则表达式## 正则表达式的获取功能
    Pattern和Matcher的结合使用.

    String str = "我的手机号码是13838383381"
    String regex = "1[3578]\\d{9}";
    Pattern p = Pattern.compile(regex); //获取正则表达式
    Matcher m = p.matcher(str);         //获取匹配器
    boolean b = m.matches();

    检验邮箱的功能
    String str = "haoyishen@itcast.cn"

    String regex = "[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\.[a-zA-Z_0-9]{2,3})+";
    String regex = "\\w+@\\w+(\\.\\w{2,3})+";

##预定义字符类
    .       任何字符
    \d      数字[0-9]
    \D      非数字[^0-9]
    \w      单词字符[a-zA-Z_0-9]
    \W      非单词字符[^\w]
    \s      空白字符[\t\n\x0b\f\r]
    \S      非空白单词[^\s]

##数量词
    ?       一次或一次也没有
    *       零次或者多次
    +       一次或者多次
    {n}     恰好n次
    {n,}    至少n次
    {n,m}   至少n次,但是不超过m次

##分组和捕获
    1     ((A)(B(C)))
    2     (A)
    3     (B(C))
    4     (C)

> 之所以这样命名捕获组是因为在匹配中,保存了与这些组匹配的输入序列的每个子序列。捕获的子序列稍后可以通过 Back 引用在表达式中使用,也可以在匹配操作完成后从匹配器获取。



> 与组关联的捕获输入始终是与组最近匹配的子序列。如果由于量化的缘故再次计算了组,则在第二次计算失败时将保留其以前捕获的值(如果有的话)例如,将字符串 "aba" 与表达式 (a(b)?)+ 相匹配,会将第二组设置为 "b"。在每个匹配的开头,所有捕获的输入都会被丢弃.

> 以 (?) 开头的组是纯的非捕获组,它不捕获文本,也不针对组合计进行计数。 {:8_525:}



作者: 生活如此多娇    时间: 2016-12-6 23:15
谢谢,,,,分享!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2