javascript - 关于正则表达式的问题

标签 javascript regex

我正在学习/练习正则表达式。我写这个是为了测试 url...我希望它以这些格式捕获 url:

www.site.com
www.site.co.uk etc
site.com
play.site.com

所以我写了这个:

(http:\/\/)*(www)*\.*(\w{2,})(\.{1})(\w{2,3})(\.*)(\w{2,3})*

(匹配 http://0 次或更多次,后跟一些字符 0 次或多次,后跟域名,后跟句点,再后跟一些字符(至少 2 个,最多 3 个),然后后跟可选的句点和更多字符(用于 co.uk 等)。)

我对正则表达式很陌生,所以不确定我所做的是否有问题,但它似乎在此处测试时运行良好:http://regexpal.com/ .随意撕开它!

我注意到的一件事是它确实匹配我不想要的 .site.com。我怎样才能只匹配 site.com 并仍然允许 http://和 www 以及子域?

最佳答案

把“.”在“www”匹配中;这将解决您的网址中可能有前导点匹配的问题。

关于javascript - 关于正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4099191/

相关文章:

javascript - 如何使用javascript在mvc项目中播放mp3文件?

javascript - 替换 keyup 上的值时重置 'input' 元素的光标位置

python - 如何使用正则表达式在字符串中查找字母及其相反的大小写?

python - 如何循环通过 div 类以访问其中的 li 类?

python - Pandas 数据帧 : Check if regex contained in a column matches a string in another column in the same row

javascript - 在 ui-select (angular-ui) 多选中标记

javascript - 如何显示另一个元素的文本

javascript - 为什么在iife中使用赋值运算符时 'this'指向 'window' obj?

php - 用于解析双括号中以竖线分隔的数据的正则表达式

regex - 如何在字符串中捕获罗马数字?