Java 从网页获取所有HTTP url
我正在创建一个简单的实用程序来检索网页中的所有HTTP URL 最初我计划使用HTML解析库解析HREF标记,但我知道我也需要检索脚本中包含的URL(下面的示例脚本),因此我开始尝试使用正则表达式从网页中获取所有HTTP URL,但由于某些原因,我的正则表达式无法正常工作 URL可以位于javascript中Java 从网页获取所有HTTP url,java,regex,html-parsing,href,Java,Regex,Html Parsing,Href,我正在创建一个简单的实用程序来检索网页中的所有HTTP URL 最初我计划使用HTML解析库解析HREF标记,但我知道我也需要检索脚本中包含的URL(下面的示例脚本),因此我开始尝试使用正则表达式从网页中获取所有HTTP URL,但由于某些原因,我的正则表达式无法正常工作 URL可以位于javascript中 <script> if(jQuery.browser.msie) { var v= 'http://test.com/test/test'
<script>
if(jQuery.browser.msie)
{
var v= 'http://test.com/test/test';
}
</script>
有人能帮我解决这个问题,或者让我知道从网页中检索所有URL的最佳方法吗?试试使用这个
\A'http:\/\/[\w\W]+'\z
这将检查您的url必须从http://
开始,并且在开始和结束时是一个字符串,在url之间现在任何东西都可以出现,因此我们必须允许特殊字符,如?:,-\u/\
以及数字等
因此,这将获得文件中存在的所有URL。尝试使用此选项
\A'http:\/\/[\w\W]+'\z
这将检查您的url必须从http://
开始,并且在开始和结束时是一个字符串,在url之间现在任何东西都可以出现,因此我们必须允许特殊字符,如?:,-\u/\
以及数字等
因此,这将获得文件中存在的所有URL。Description
你的表达有错误。它应该使s
可选
https?://([-\\w\\.]+)+(:\\d+)?(/([\\w/_\\.]*(\\?\\S+)?)?)?
^
我还建议:
- 将
…(
捕获组替换为非捕获组,如)
…(?:
)
- 您不需要在字符组内转义
。] - 添加测试以确保您没有捕获url周围的右引号
- 将查找
节的节重写为重复的非捕获组,查找初始斜杠和文件夹名称/folder/subfolder
https?:\/\/(?:[\w-]+)+(?::\d+)(?:\/[\w\/.]*)*?(?:\?\S+)(?=['“\S])
作为Java字符串:“https?:\/\/(?:[\\w-]+)+(?:\\d+)(?:\/[\\w\\/\\\\/\\\.]*)*?(?:\?\\S+)(?=['\“\\S])”
例子
示例文本
<script>
if(jQuery.browser.msie)
{
var v= 'http://test.com/test/test';
}
</script>
<a class="test" href="http://blablablablabla.com">Third Link</a>
描述
你的表达有错误。它应该使s
可选
https?://([-\\w\\.]+)+(:\\d+)?(/([\\w/_\\.]*(\\?\\S+)?)?)?
^
我还建议:
- 将
…(
捕获组替换为非捕获组,如)
…(?:
)
- 您不需要在字符组内转义
。] - 添加测试以确保您没有捕获url周围的右引号
- 将查找
节的节重写为重复的非捕获组,查找初始斜杠和文件夹名称/folder/subfolder
https?:\/\/(?:[\w-]+)+(?::\d+)(?:\/[\w\/.]*)*?(?:\?\S+)(?=['“\S])
作为Java字符串:“https?:\/\/(?:[\\w-]+)+(?:\\d+)(?:\/[\\w\\/\\\\/\\\.]*)*?(?:\?\\S+)(?=['\“\\S])”
例子
示例文本
<script>
if(jQuery.browser.msie)
{
var v= 'http://test.com/test/test';
}
</script>
<a class="test" href="http://blablablablabla.com">Third Link</a>
:) :)