Regex在HTML中查找WSDL文件

本文关键字:WSDL 文件 查找 HTML Regex | 更新日期: 2023-09-27 18:26:00

我正在编写一个发现服务,它接受一个URL并返回位于该页面的HTML。

从那个页面,我需要"抓取"所有的WSDL URL。

因此,我需要以下内容,但我不确定如何指定要传递到模式匹配中的正则表达式。

string wsdlPattern = //SOME REGEX THAT MATCHES WSDL http:{address}wsdl
Regex wsdlRegex = new Reges(wsdlPattern);
MatchCollection matches = wsdlRegex.Match(html);

有人能帮我想一想我该怎么做吗?

Regex在HTML中查找WSDL文件

试试这个:

http://[^'s]*?.wsdl

常规文本部分是显而易见的:它需要以http://开始,以.wsdl结束。[^'s]表示"任何非空白字符",*?表示"尽可能少"(如果你有类似http://www.blah.com/a.wsdl<br>http://www.blah.com/b.wsdl的字符,这是必要的。如果没有?,你会将整个字符匹配为一个字符串。)

这并不完美,但它应该让你开始。

如果您想使用regex,这是一个很好的资源:http://www.gskinner.com/RegExr

我使用下面的RE来验证WSDL URL,正如您所看到的,我必须检查它们是否以"?WSDL"结尾

回复:(http|https):'/'/[^'s]*?.'?wsdl

忽略案例:(?i)(http|https):'/'/[^'s]*?.'?wsdl(?-i)

(测试用例:http://localhost/WebService1.asmx?wSDl

wsdls也可以使用ftp和文件上传,因此:

(http|https|ftp|file)://[^'s]*?.(wsdl|WSDL)

希望这能有所帮助!