我有正则表达式
((http\://|https\://|ftp\://)|(www.)|([a-zA-Z0-9\.-]))+(([a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}))(/[a-zA-Z0-9%:/-_\?\.'~#-]*)?
正在完美地选择有效的网址。
我有一个可以有
的场景REQ:
我想要的是首先正则表达式检查有效的URL然后如果url有效它忽略有效的URL并且只在有效URL之外搜索TEXT。
的问题:
我尝试了很多正则表达式,但它也选择了有效的网址,我不希望我只想要网址有效搜索网址外的文字。
没有功能请。我正在尝试使用正则表达式修复此问题。
答案 0 :(得分:0)
也许你想要这个:
(.*?)((?:(?:http\:\/\/|https\:\/\/|ftp\:\/\/)|(?:www.)|(?:[a-zA-Z0-9\.-]))+(?:(?:[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}))(?:\/[a-zA-Z0-9%:\/-_\?\.'~#-]*)?)(.*)
请在此处查看demo:
您将获得三个组,您可以使用命名组来捕获beforeUrl
文本,Url
和afterUrl
文本,这将是这样的:
(?<beforeUrl>.*?)(?<Url>(?:(?:http\:\/\/|https\:\/\/|ftp\:\/\/)|(?:www.)|(?:[a-zA-Z0-9\.-]))+(?:(?:[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}))(?:\/[a-zA-Z0-9%:\/-_\?\.'~#-]*)?)(?<afterUrl>.*)
请在此处查看demo。