#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?uxm)(?(DEFINE)" & @CRLF & _
" (?<protocol> (?<=^|[^a-z]) [a-z]+? : )" & @CRLF & _
" (?<domain> (?:[a-z\-]+\.)+[a-z\-]+ )" & @CRLF & _
" (?<ip> (?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) )" & @CRLF & _
" (?<port> (?<!\s):\d+(?=\/|$|\s))" & @CRLF & _
" (?<pathquery>[A-Za-z\d\!\*\(\)\;\:\@\&\=\+\$\,\/\?\#\[\]\%\{\}\|\\\^\`\~]+)" & @CRLF & _
" (?<url> (?&protocol) (?: (?:\/\/) (?: (?&domain) | (?&ip) ) (?&port)? )? (?&pathquery))" & @CRLF & _
")" & @CRLF & _
"(?&url)"
Local $sString = "http://en.wikipedia.org/wiki/A#CITEREFSimpsonWeiner1989里面找 以上URL" & @CRLF & _
"下载地址magnet:?xt=urn:btih:65F16B126D8A656E4FC825DE204EBFAF04B070FC里面找 以上URL" & @CRLF & _
"magnet:" & @CRLF & _
"net:" & @CRLF & _
"以下URLhttps://en.wikipedia.org/wiki/A#CITEREFSimpsonWeiner1989里面找 以上URL" & @CRLF & _
"http://192.168.1.1/里面找" & @CRLF & _
"'https://en.wikipedia.org/wiki/A/////#CITEREFSimpsonWeiner1989'" & @CRLF & _
"http://192.168.1.1:80/ 里面找" & @CRLF & _
"以下URL" & @CRLF & _
"https://google.com/search?q=%E5%9F%9F%E5%90%8D#newwindow=1&q=%E5%9F%9F%E5%90%8D+%E5%AD%97%E7%AC%A6" & @CRLF & _
"" & @CRLF & _
"http://en.wikipedia.org/wiki/A#CITEREFSimpsonWeiner1989" & @CRLF & _
"magnet:?xt=urn:btih:65F16B126D8A656E4FC825DE204EBFAF04B070FC" & @CRLF & _
"https://en.wikipedia.org/wiki/A#CITEREFSimpsonWeiner1989" & @CRLF & _
"http://192.168.1.1/" & @CRLF & _
"https://en.wikipedia.org/wiki/A/////#CITEREFSimpsonWeiner1989" & @CRLF & _
"http://192.168.1.1:80/" & @CRLF & _
"https://google.com/search?q=%E5%9F%9F%E5%90%8D#newwindow=1&q=%E5%9F%9F%E5%90%8D+%E5%AD%97%E7%AC%A6" & @CRLF & _
""
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH)
Local $aFullArray[0]
For $i = 0 To UBound($aArray) -1
_ArrayConcatenate($aFullArray, $aArray[$i])
Next
$aArray = $aFullArray
; Present the entire match result
_ArrayDisplay($aArray, "Result")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm