gpt4 book ai didi

java - 正则表达式:匹配多行输入的模式

转载 作者:行者123 更新时间:2023-11-30 04:53:59 27 4
gpt4 key购买 nike

我正在寻找正则表达式模式来验证我的 HTML 输入具有正确的结构并(可能在第二步中)从中提取一些信息。

输入文本示例:

<title>Example Title</title><br />
<link>Download:</link> <a href="URL">hier</a> | hoster1 <br />
<link>Download:</link> <a href="URL">hier</a> | hoster2 <br />
<link>Download:</link> <a href="URL">hier</a> | hoster3

标题、主机和 URL 当然可以更改并且很有趣,所以我的尝试是这样的:

<title>([^<]+?)</title><br />\s<link>Download:</link> <a href="([^"]+?)">hier</a> \| ([^<]+?)<br />\s

这些组可能看起来有点傻,但我也尝试过(.*?),即使使用惰性模式,他也只会匹配整行。

  1. 现在,第二部分(< link > 部分)将匹配,但不会与 < title > 部分组合。我猜我的空白字符 (\s) 与新行不匹配?如何仅检查换行符?

  2. 可用链接的数量是动态的,所以我不知道有多少个 标签。如何使用模式的后半部分作为可重复模式?我想做这样的事情(这显然行不通):

    [ <link>Download:</link> <a href="([^"]+?)">hier</a> \| ([^<]+?)<br />\s ]*

这一切都是通过 MULTILINE 选项集完成的(尽管我不太确定我想做的事情是否需要它)。

我已经尝试了一些不同的事情几天了,但没有取得任何进展,我真的很感激一些指向正确方向的指示,谢谢。

最佳答案

使用适当的 HTML 解析器,例如 jsoup对于此类任务;正则表达式适用于非常简单的情况,但很快就会变得难以使用。 HTML 解析器的实现会更快、更容易、更正确,尤其是当您开始进行更高级的测试时。

关于java - 正则表达式:匹配多行输入的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9166024/

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