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);
有人能帮我想一想我该怎么做吗?
试试这个:
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)
希望这能有所帮助!