zoukankan      html  css  js  c++  java
  • 正则表达式

    一 概述

    1.什么是正则表达式?

    正则表达式是用来判断字符串是否满足指定格式的表达式,是一门独立于编程语言的学科。

    2.基本构成

    正则表达式有一些具有特殊含义的字符构成,这些字符被叫做正则表达式的元字符:

    元字符 含义
    . 任意一个字符
    d 任意一个数字
    D 任意一个非数字字符
    s 任意一个空白字符
    S 任意一个非空白字符
    w 任意一个可用作标识符的字符,$除外
    W 任意一个不可用作标识符的字符
    • 如果正则表达式被双引号括起来,并且元字符前面没有加“”,系统将元字符视作转义字符处理,找不到指定的转义字符,则报错,因此字符串形式的正则表达式元字符前面需要加“”,非字符表达式形式不需要加。
    • 在XML中,正则表达式的书写方式:<![CDATA[正则表达式(使用元字符)]]>。
    • 在正则表达式中,如果需要使用“.”,则以“\.”方式使用。

    3.次数限定修饰符

    限定字符出现的次数,用在字符后面:

    符号 含义
    0次或者1次
    + 1次或者多次
    * 0或多次
    {n} n次
    {n,} 至少n次
    {n,m} n-m次

    4.首尾限定修饰符

    必须以指定的字符开始或者结尾:

    字符 含义
    ^a 以a开头
    a$ 以a结尾

    在正则表达式中,如果结尾限定了某种类型数据的出现次数,必须在结尾加上“$”,不然当在规定次数的字符后面出现其他字符时,也有可能验证通过,即限定结尾次数时必须加“$”。

    5.列表限定修饰符

    限定出现列表中任意一个元素,或者全部不出现:包含性限定修饰符与排他性限定修饰符。

    字符 含义
    [abc] 代表a/b/c中任一个字符
    [^abc] 代表a/b/c中以外任一个字符

    6.|

    在正则表达式中可以使用|字符连接两种表达式形式,满足其中一种即满足。

    二 正则表达式的应用

    在一般java代码中判断字符是否符合给定的格式;

    s.matches(res);
    Pattern.matches(res,s);

    在Scanner简单文本扫描器中,用来截取字符:

    Scanner scanner=new Scanner(source).userDelimiter(String regex);//创建使用指定分隔符的简单文本扫描器
    String s=scanner.next();//读取下一个字符(被分隔符包裹的部分就是字符)

    在JavaScript中创建RegExp对象:

    var regex=/正则表达式(使用元字符)/;
    var regex=new RegExp("正则表达式");
    var matching=regex.test(str);
  • 相关阅读:
    【bzoj1704】[Usaco2007 Mar]Face The Right Way 自动转身机 贪心
    【poj2104】K-th Number 主席树
    【bzoj3772】精神污染 STL+LCA+主席树
    【bzoj3932】[CQOI2015]任务查询系统 离散化+主席树
    【bzoj3545/bzoj3551】[ONTAK2010]Peaks/加强版 Kruskal+树上倍增+Dfs序+主席树
    【bzoj3524】[Poi2014]Couriers 主席树
    【bzoj2223】[Coci 2009]PATULJCI 主席树
    【bzoj2588】Spoj 10628. Count on a tree 离散化+主席树
    【bzoj1901】Zju2112 Dynamic Rankings 离散化+主席树+树状数组
    【bzoj1552】[Cerc2007]robotic sort Splay
  • 原文地址:https://www.cnblogs.com/tonghun/p/7231594.html
Copyright © 2011-2022 走看看