gpt4 book ai didi

regex - 在 Google Analytics 中匹配 25 个 IP 地址的正则表达式

转载 作者:行者123 更新时间:2023-12-03 17:20:12 25 4
gpt4 key购买 nike

我遇到了 RegEx 的问题。主要是我想创建一个过滤器,只在 Google Analytics 中找到这 25 个 IP 地址:

  • 216.54.215.0
  • 216.54.215.1
  • 216.54.215.2
  • ...
  • 216.54.215.24

  • 我首先认为我可以使用:
    216\.54\.215\.([0-9]|[1][0-9]|[2][0-4])

    RegEx Test

    但正如您所看到的,它没有捕获 10-24 的第二个数字。

    然后我打开了显示空白,并注意到正则表达式可能存在换行问题。所以我试图在最后一个 . 之后只选择一个数字通过使用 [0-9]$ :
    216\.54\.215\.([0-9]$|[1][0-9]|[2][0-4])无法识别 0-9 中的任何一个,这很奇怪,因为我认为它会匹配单个数字 [0-9] 并在此之后结束,即 $。我认为这是错误的吗?

    所以接下来,我打开了显示空白,我看到每个 IP 地址都有换行符。我不知道为什么我决定尝试单词边界,但我决定换掉我的 $对于 \b .你知道吗,它奏效了。
    216\.54\.215\.([0-9]\b|[1][0-9]|[2][0-4])

    单词边界的定义是:在 \w 匹配的字符之间立即匹配,不消耗任何字符。和 \w 不匹配的字符(按任意顺序)。

    问题:
  • 这是编写 RegEx 的最佳方式吗?
  • 为什么 $ 不在我的第二个例子中工作?
  • 为什么\b工作?
  • 最佳答案

    216\.54\.215\.([0-9]|[1][0-9]|[2][0-4])+

    添加的 +最后意味着

    Matches the previous element one or more times. e.g.

    Pattern: "be+" Matches: "bee" in "been", "be" in "bent"



    甚至更好,你可以去
    216\.54\.215\.([0-9]|[1][0-9]|[2][0-4]){1,3}

    那么您最后只会选择 3 位数字,如果第 4 位数字输入错误,则消除了错误的可能性。 (在你的情况下可能有用也可能没用)

    In general { n , m } matches the previous element at least n times, but no more than m times.

    Pattern "\d{3,5}" Matches "166", "17668" & "19302" in "193024"



    这将是你的结果。 Results

    因此,您的情况的确切解决方案是使用
    216\.54\.215\.([0-9]\b|[1][0-9]|[2][0-4]){1,2}\b

    这意味着您只需要最后两位数,并且限制为 24 并且边界在那里完成,那么 Regex 将不会选择 216.54.215.24216.54.215.2411 .

    this是最终结果。

    我一直保留 this当我使用正则表达式时,页面打开作为引用。

    关于regex - 在 Google Analytics 中匹配 25 个 IP 地址的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24334222/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com