正则表达式案例:


_1\s*">\s*(\d+)\s*</br>[\S\s]*?_1"\s*>\s*(\S+)\s*</br>[\S\s]*?_1"\s*>\s*(\S+)\s*</td>[\S\s]*?15px;">\s*(\S+)\s*<[\S\s]*?_1"\s*>\s*(\S+\s+\S+)\s*</td>

当然可以,下面是对这个正则表达式每个部分的详细解释:

分析

  1. _1\s*">\s*(\d+)\s*</br>

    • _1: 匹配字符串_1
    • \s*: 匹配零个或多个空白字符(空格、制表符等)。
    • ">: 匹配字符">
    • \s*: 匹配零个或多个空白字符。
    • (\d+): 匹配一个或多个数字,并将其捕获到第一个捕获组中。
    • \s*: 匹配零个或多个空白字符。
    • </br>: 匹配字符串</br>

    总结:这个部分匹配形如_1">数字</br>的字符串,并捕获其中的数字。

  2. [\S\s]*?_1"\s*>\s*(\S+)\s*</br>

    • [\S\s]*?: 匹配任意字符(包括空白字符),使用非贪婪模式,即尽可能少地匹配字符。
    • _1": 匹配字符串_1"
    • \s*: 匹配零个或多个空白字符。
    • >: 匹配字符>
    • \s*: 匹配零个或多个空白字符。
    • (\S+): 匹配一个或多个非空白字符,并将其捕获到第二个捕获组中。
    • \s*: 匹配零个或多个空白字符。
    • </br>: 匹配字符串</br>

    总结:这个部分匹配任意字符直到_1",然后捕获_1">之后的非空白字符。

  3. [\S\s]*?_1"\s*>\s*(\S+)\s*</td>

    • [\S\s]*?: 匹配任意字符(包括空白字符),使用非贪婪模式。
    • _1": 匹配字符串_1"
    • \s*: 匹配零个或多个空白字符。
    • >: 匹配字符>
    • \s*: 匹配零个或多个空白字符。
    • (\S+): 匹配一个或多个非空白字符,并将其捕获到第三个捕获组中。
    • \s*: 匹配零个或多个空白字符。
    • </td>: 匹配字符串</td>

    总结:这个部分匹配任意字符直到_1",然后捕获_1">之后的非空白字符,后跟</td>

  4. [\S\s]*?15px;">\s*(\S+)\s*<[\S\s]*?_1"\s*>\s*(\S+\s+\S+)\s*</td>

    • [\S\s]*?: 匹配任意字符(包括空白字符),使用非贪婪模式。
    • 15px;">: 匹配字符串15px;">
    • \s*: 匹配零个或多个空白字符。
    • (\S+): 匹配一个或多个非空白字符,并将其捕获到第四个捕获组中。
    • \s*: 匹配零个或多个空白字符。
    • <: 匹配字符<
    • [\S\s]*?: 匹配任意字符(包括空白字符),使用非贪婪模式。
    • _1": 匹配字符串_1"
    • \s*: 匹配零个或多个空白字符。
    • >: 匹配字符>
    • \s*: 匹配零个或多个空白字符。
    • (\S+\s+\S+): 匹配两个非空白字符组之间有空白字符,并将其捕获到第五个捕获组中。
    • \s*: 匹配零个或多个空白字符。
    • </td>: 匹配字符串</td>

    总结:这个部分匹配15px;">后的非空白字符,捕获它们,并在之后匹配HTML标签和字符,最后捕获两个非空白字符组之间有空白字符的部分。

总结

这个正则表达式的作用是从HTML中提取特定的内容,其中包括数字和几个字段的文本。通过分析每个捕获组,你可以提取出这些字段中的值。

万能语法

(.*?): 捕获组,匹配最少的字符(非贪婪模式)
最后修改:2024 年 09 月 21 日
如果觉得我的文章对你有用,请随意赞赏