• java 正则表达式


    正则表达式可以描述一种字符串特征的模式,并根据该特征来对于有相同特征的字符串进行匹配。

    在正则表达式中,特定的字符可以匹配确定的字符或字符串。正则表达式中字符的匹配行为如下表所示

    元字符

    行为

    示例

    *

    零次或多次匹配前面的字符或子表达式。

    等效于 {0,}。

    zo* 与“z”和“zoo”匹配。

    +

    一次或多次匹配前面的字符或子表达式。

    等效于 {1,}。

    zo+ 与“zo”和“zoo”匹配,但与“z”不匹配。

    ?

    零次或一次匹配前面的字符或子表达式。

    等效于 {0,1}。

    当 ?紧随任何其他限定符(*、+、?、{n}、{n,} 或 {n,m})之后时,匹配模式是非贪婪的。非贪婪模式匹配搜索到的、尽可能少的字符串,而默认的贪婪模式匹配搜索到的、尽可能多的字符串。

    zo? 与“z”和“zo”匹配,但与“zoo”不匹配。

    o+? 只与“oooo”中的单个“o”匹配,而 o+ 与所有“o”匹配。

    do(es)? 与“do”或“does”中的“do”匹配。

    ^

    匹配搜索字符串开始的位置。如果标志中包括 m(多行搜索)字符,^ 还将匹配 或 后面的位置。

    如果将 ^ 用作括号表达式中的第一个字符,则会对字符集求反。

    ^d{3} 与搜索字符串开始处的 3 个数字匹配。

    [^abc] 与除 a、b 和 c 以外的任何字符匹配。

    $

    匹配搜索字符串结尾的位置。如果标志中包括 m(多行搜索)字符,^ 还将匹配 或 前面的位置。

    d{3}$ 与搜索字符串结尾处的 3 个数字匹配。

    .

    匹配除换行符 之外的任何单个字符。若要匹配包括 在内的任意字符,请使用诸如 [sS] 之类的模式。

    a.c 与“abc”、“a1c”和“a-c”匹配。

    []

    标记括号表达式的开始和结尾。

    [1-4] 与“1”、“2”、“3”或“4”匹配。[^aAeEiIoOuU] 与任何非元音字符匹配。

    {}

    标记限定符表达式的开始和结尾。

    a{2,3} 与“aa”和“aaa”匹配。

    ()

    标记子表达式的开始和结尾。可以保存子表达式以备将来之用。

    A(d) 与“A0”至“A9”匹配。保存该数字以备将来之用。

    |

    指示在两个或多个项之间进行选择。

    z|food 与“z”或“food”匹配。(z|f)ood 与“zood”或“food”匹配。

    /

    表示 JScript 中的文本正则表达式模式的开始或结尾。在第二个“/”后添加单字符标志可以指定搜索行为。

    /abc/gi 是与“abc”匹配的 JScript 文本正则表达式。g(全局)标志指定查找模式的所有匹配项,i(忽略大小写)标志使搜索不区分大小写。

    将下一字符标记为特殊字符、文本、反向引用或八进制转义符。

     与换行符匹配。( 与“(”匹配。\ 与“”匹配。

    Java中通过java.util.regex包来实现正则表达式。在包中主要包括以下三个类:

      • Pattern 类:

        pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。

      • Matcher 类:

        Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。

      • PatternSyntaxException:

        PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误

    在正则表达式的使用中,首先确定好正则表达式字符串,通过Pattern类来初始化。然后通过Matcher类的方法根据正则字符串来对原始字符串进行索引、查找、替换等操作。

  • 相关阅读:
    Flutter-现有iOS工程引入Flutter
    EventBus 3.0使用详解
    一步一步教你实现iOS音频频谱动画(二)
    一步一步教你实现iOS音频频谱动画(一)
    iOS热更新实现方式
    github 远程仓库名或地址修改,本地如何同步
    Xmind ZEN破解版来袭:如何去除水印
    flutter packages get 慢 解决方案
    web计时机制——performance对象
    jQuery设计思想
  • 原文地址:https://www.cnblogs.com/Fanchile/p/13892409.html
Copyright © 2020-2023  润新知