|
|
1
3
如果你正在寻找一个傻瓜证明解决方案正则表达式不是你的答案。由于html语言的复杂性,它们从根本上是有限的,不能用于从html文件中可靠地解析出链接或其他相关标记。 相反,您需要使用实际的html dom api来解析链接。 |
|
|
2
2
正则表达式不是HTML的最佳选择。 参见前面的问题:
相反,您需要的是已经知道如何解析dom的东西;否则,您就是在发明轮子。 |
|
|
3
2
其他用户可能会告诉你“不,停下!正则表达式不应与HTML混合!就像是漂白剂和氨水的混合!”这个建议很有智慧,但不是全部。 事实上,正则表达式在收集常用格式的链接时工作得很好。不过,更好的方法是使用专门的工具来处理这类事情,比如htmlagilitypack。 如果使用正则表达式,则可能匹配99.9%的链接,但可能会错过罕见的意外角点情况或格式错误的HTML数据。 下面是一个我组合在一起的函数,它使用htmlagilitypack来满足您的需求:
此函数创建一个新的htmlagilitypack.htmldocument,将包含html的字符串加载到其中,然后使用xpath查询“//a[@ref!='']“选择页面上所有不指向“”的链接。然后,我使用linq扩展名select将htmlnodecollection转换为一个字符串列表,其中包含链接指向的ref属性的值。 下面是一个使用示例:
这应该比正则表达式有效得多。 |
|
|
4
0
您可以查找任何类似于http/https模式的url的内容。这不是html的证明,但它会让你得到像httpurl一样的东西,这是你所需要的,我怀疑。您可以添加更多sachem和域。
输出:
|
|
|
DotFX · RegEx捕获关键字前但括号后的所有内容 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |
|
|
iato · 确保正则表达式不从命名材料中的数字中提取 1 年前 |
|
|
vr8ce · 非成对标记中特定字符的正则表达式 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |