我的正则表达式与数字不匹配
My regex does not match numbers
我是制作正则表达式的新手,所以这可能只是一个愚蠢的疏忽,但我的正则表达式(旨在匹配 URL)不起作用。我的目标是让它匹配任何网址,例如:
http://www.somewhere.com
somewhere.com
https://ww3.some_where-hi.com
www.goop.go/herp/derp.lol
我构建的正则表达式如下所示,但是,它与 http://t.co/GZhtBh6c
这样的 URL 不匹配,它在数字 6 处停止匹配(由 www.regexpal.com 确定)。
((http|https)://)?([a-z0-9]+'.)?[a-z0-9'-_]+.[a-z]+(/[a-z0-9'-_]*)*([a-z0-9'-_]*'.[a-z]+){0,1}
谁能告诉我为什么这不起作用?另外,我确信这不是最好的解决方案。如果你有一个更优雅的正则表达式,我很想看到它。
附言这个正则表达式将与javascript一起使用。
验证字符串是否包含 RFC 3986 中指定的 URL。 支持绝对和相对 URL。
这与您提供的样本等相匹配。它还允许您提取 url 的不同部分
^
(# Scheme
[a-z][a-z0-9+'-.]*:
(# Authority & path
//
([a-z0-9'-._~%!$&'()*+,;=]+@)? # User
([a-z0-9'-._~%]+ # Named host
|'[[a-f0-9:.]+'] # IPv6 host
|'[v[a-f0-9][a-z0-9'-._~%!$&'()*+,;=:]+']) # IPvFuture host
(:[0-9]+)? # Port
(/[a-z0-9'-._~%!$&'()*+,;=:@]+)*/? # Path
|# Path without authority
(/?[a-z0-9'-._~%!$&'()*+,;=:@]+(/[a-z0-9'-._~%!$&'()*+,;=:@]+)*/?)?
)
|# Relative URL (no scheme or authority)
([a-z0-9'-._~%!$&'()*+,;=@]+(/[a-z0-9'-._~%!$&'()*+,;=:@]+)*/? # Relative path
|(/[a-z0-9'-._~%!$&'()*+,;=:@]+)+/?) # Absolute path
)
# Query
('?[a-z0-9'-._~%!$&'()*+,;=:@/?]*)?
# Fragment
('#[a-z0-9'-._~%!$&'()*+,;=:@/?]*)?
$
在javascript中,这变成了
if (/^([a-z][a-z0-9+'-.]*:('/'/([a-z0-9'-._~%!$&'()*+,;=]+@)?([a-z0-9'-._~%]+|'[[a-f0-9:.]+']|'[v[a-f0-9][a-z0-9'-._~%!$&'()*+,;=:]+'])(:[0-9]+)?('/[a-z0-9'-._~%!$&'()*+,;=:@]+)*'/?|('/?[a-z0-9'-._~%!$&'()*+,;=:@]+('/[a-z0-9'-._~%!$&'()*+,;=:@]+)*'/?)?)|([a-z0-9'-._~%!$&'()*+,;=@]+('/[a-z0-9'-._~%!$&'()*+,;=:@]+)*'/?|('/[a-z0-9'-._~%!$&'()*+,;=:@]+)+'/?))('?[a-z0-9'-._~%!$&'()*+,;=:@'/?]*)?(#[a-z0-9'-._~%!$&'()*+,;=:@'/?]*)?$/im.test(subject)) {
// Successful match
} else {
// Match attempt failed
}
使用[A-z]
而不是[a-z]
您的小a-z
只匹配小写字母。
相关文章:
- 高库存时期时间与时区不匹配
- 函数将输出nan而不是数字,为什么
- react路由器使用简单的javascript路由器配置来处理不匹配的路径
- Javascript:图像与单选按钮的值不匹配
- 猫鼬——如何找到物体所在的场&;name”;不包含数字
- 文本区域(jQuery)的结果不匹配
- 如果状态不匹配,则缩小为丑陋
- javascript正则表达式,用于匹配带数字和不带数字的字符串
- 为什么我网页的facebook点赞数与该网页的facebook页面不匹配
- 使用jscodeshift添加表达式时,错误{..}与类型字符串不匹配
- JavaScript正则表达式不匹配
- row.entity.xxxx属性doensn'排序后不匹配
- 如何提取与某些模式不匹配的数字
- 我的正则表达式与数字不匹配
- 正则表达式不匹配数字
- Regex匹配年,但不匹配javascript中的其他数字
- Javascript RegEx从字符串中提取所有单词作为单个匹配项,但不提取数字
- javascript中的RexExp不匹配字符串中的数字
- 正则表达式不匹配 6 个重复数字
- 正则表达式不能正确匹配数字