regex - 验证网址并匹配空字符串的正则表达式?

标签 regex

当前表达式验证网址 (HTTP),如何更改它以使空字符串也匹配?

(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?

最佳答案

如果您想修改表达式以匹配一个完全空的字符串 完整的 URL,您将需要使用 anchor 元字符 ^ 和 $(分别匹配行的开头和结尾)。

^(|https?:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)$

正如 dirkgently 指出的那样,您可以稍微简化您对协议(protocol)的匹配,所以我也为您提供了它。

但是,如果您在程序或脚本中使用此表达式,则使用语言自己的方法来检查输入是否为空可能会更简单。
// in no particular language...
if input.length > 0 then
    if input matches <regex> then
        input is a URL
    else
        input is invalid
else
    input is empty

关于regex - 验证网址并匹配空字符串的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/591859/

相关文章:

java - 警告 : Action does not match allowed action names pattern, 清理它

php - 为什么这个 preg_replace 不起作用?删除 HTML 实体

python - 模式后面不再有数字正则表达式 python

php - 将括号之间以逗号分隔的文本解析为键值对数组

java - 在启用无值键的情况下解析 Java 中的键=值对

javascript - Javascript 网站的正则表达式

javascript - 用javascript替换正则表达式中的部分文本

c++ - 使用 C++ 正则表达式一次性替换多个正则表达式

javascript - 如何制作像 Google chrome find (Ctrl + F) 这样的过滤器组件来检测文本并更改其背景颜色

java - 使用正则表达式在java中分割字符串