【问题标题】:regex for finding specific url including <a href..> html tag用于查找特定 url 的正则表达式,包括 <a href..> html 标记
【发布时间】:2016-08-22 02:48:29
【问题描述】:

这是控制台日志:

10:16:02 2016-08-10 10:16:01.087 [INFO] (1): DEVICE_DAILY_SKIPS_SUBSCRIBER=60
10:16:02 2016-08-10 10:16:01.087 [INFO] (1): DEVICE_DAILY_SKIPS_REGISTERED=48
10:16:02 2016-08-10 10:16:01.088 [INFO] (1): DEVICE_HOURLY_STATION_SKIPS_SUBSCRIBER=6
10:16:02 2016-08-10 10:16:01.284 [INFO] (1): Post results =true
10:16:02 2016-08-10 10:16:01.290 [INFO] (1): Calling Api......
10:16:05 2016-08-10 10:16:04.289 [INFO] (1): Run URL = <a href="https://sv5.ad.mobile.com/index.php?/runs/view/2435" target="_blank">Run = R2435</a>
10:16:05 2016-08-10 10:16:04.293 [INFO] (1): [CONFIGURATION BeforeSuite] AbstractBaseTest#setUpBeforeSuite
10:16:05 2016-08-10 10:16:04.307 [INFO] (1): SHORT_TIMEOUT: 1000

上面是 Jenkins 构建控制台日志,我正在解析它以找到所需的 URL 以及封闭的 &lt;a href.. html 标记。例如在上面的日志中,我想在正则表达式的帮助下找到这个:&lt;a href="https://sv5.ad.mobile.com/index.php?/runs/view/2435" target="_blank"&gt;Run = R2435&lt;/a&gt;

这是我尝试过的:

&lt;a href="https://sv5.ad.mobile.com/index.php?/runs/view/.*"&gt; 但似乎不起作用。另外,有没有办法为这种搜索提供一点紧凑的正则表达式?如何借助正则表达式在日志中找到此类 URL?

【问题讨论】:

  • 您知道? 是正则表达式中的特殊字符吗?点也是如此。
  • (&lt;a href.*&lt;/a&gt;) 呢?

标签: regex parsing text jenkins


【解决方案1】:

一旦你逃脱了.s 和?s,你已经拥有的应该大部分都可以工作。您还需要允许其他属性,例如 target="_blank":

<a href="https://sv5\.ad\.mobile\.com/index\.php\?/runs/view/[^"]*"[^>]*>

[^"]* 表示“任意数量的非双引号字符”,[^&gt;]* 同样表示“任意数量的非直角括号字符”。

您可能希望更灵活地允许属性也出现在href 之前:

<a [^>]*href="https://sv5\.ad\.mobile\.com/index\.php\?/runs/view/[^"]*"[^>]*>

至于它是否可以更紧凑,这取决于您要查找的内容。你只给了我们一个例子,所以我们很难推测。

【讨论】:

    猜你喜欢
    • 2011-10-07
    • 1970-01-01
    • 2019-07-26
    • 2013-04-02
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多