问题描述
我在JavaScript regex中有以下正则表达式
I have the following regex in JavaScript regex
(https?|ftp)://([-A-Z0-9.]+)(/[-A-Z0-9+&@#/%=~_|!:,.;]*)?(\?[A-Z0-9+&@#/%=~_|!:,.;]*)?
它尝试验证和清空空格或URL。
It attempts to validate and empty space/s or a URL.
但是当我尝试在Dart中使用
Yet when I attempt to use it in Dart RegExp
使用Perle flavor正则表达式,它不会验证。
that uses a Perle flavour regex, it does not validates.
任何帮助是值得赞赏的。
Any help is appreciated.
推荐答案
您的模式不会查找小写字符。您可以将 az
添加到相应的字符组,也可以使用 caseSenstivie:false
>
Your pattern doesn't look for lowercase characters. Either you add a-z
to the respective character groups or you use caseSenstivie: false
as shown in the code.
var urlPattern = r"(https?|ftp)://([-A-Z0-9.]+)(/[-A-Z0-9+&@#/%=~_|!:,.;]*)?(\?[A-Z0-9+&@#/%=~_|!:,.;]*)?";
var result = new RegExp(urlPattern, caseSensitive: false).firstMatch('https://www.google.com');
如果结果是!= null,则找到匹配。
If the result is != null a match was found.
您的模式找不到 http:
网址(只有 https
或 ftp
) www.google.com
。
关于'空白'的声明可能适用于您原本的问题中的电子邮件正则表达式,而不是您在注释中添加的网址正则表达式。
Your pattern doesn't find http:
URLs (only https
or ftp
) neither www.google.com
.Your statement about 'empty space' might apply to your email regexp you had in your question originally but not to your URL regexp you added in your comment.
这篇关于URL正则表达式由正则表达式好友传递但DART失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!