Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何修改正则表达式以匹配页面上的所有URL_Regex_Url - Fatal编程技术网

Regex 如何修改正则表达式以匹配页面上的所有URL

Regex 如何修改正则表达式以匹配页面上的所有URL,regex,url,Regex,Url,我使用正则表达式搜索一个简单的url: 它匹配文本中的一个简单url。如何修改此正则表达式以匹配文本中的所有URL 我对正则表达式不太在行,所以请有人看看你的例子,你没有放flag 为“global”添加“g”标志(表示正则表达式不会在第一次匹配时停止) 为多行搜索添加“m”标志,表示开始和结束锚(^和$)匹配行的开始和结束,而不是整个文本 编辑: 您最初的正则表达式是\\^(http:\/\/www.\124; https:\/\/www.\124; http:\/\/\/\\/\\/

我使用正则表达式搜索一个简单的url:

它匹配文本中的一个简单url。如何修改此正则表达式以匹配文本中的所有URL


我对正则表达式不太在行,所以请有人看看你的例子,你没有放flag

  • 为“global”添加“g”标志(表示正则表达式不会在第一次匹配时停止)
  • 为多行搜索添加“m”标志,表示开始和结束锚(^和$)匹配行的开始和结束,而不是整个文本

编辑:

您最初的正则表达式是
\\^(http:\/\/www.\124; https:\/\/www.\124; http:\/\/\/\\/\\/\\/\\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})(\/.$

你需要

#^(http:\/\/www\.\.\https:\/\/www\.\124; http:\/\/\\/\\\/\\\\/\\/\\/\\)?[a-z0-9]{1}[a-z0-9]+.*.[a-z]{2,5}(:[0-9]{1,5})(\/.*)$\gm
(注意末尾的两个字母,它是标志)

编辑2

你可以缩短你的正则表达式

[a-z0-9]+([\-\.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})(\/.*)$gm


请注意,
abc | abdc | ab | abd
是可以编写的
abd?c?
,这就是我用您的
http:\/\/\/\;https:\/\/\\\/\\\…
编写一个正则表达式来匹配所有/strong>URL的任务。看一看,选择一个符合你需要的。您链接到的一个和另一个答案中的一个在该链接中许多更复杂的url字符串上都失败。

您强调了单词ALL。虽然公认答案中的正则表达式是好的,但它不能捕获所有URL,这是不可能的。你应该做更多的研究,试着更好地限定你的问题。这个问题及其目前的答案相当误导。