出于某种原因,我总是陷入过去非常基本的正则表达式。
我正在尝试制作一个正常的表达式,种类看起来像一个URL。我只想要基本检查。
我希望它匹配以下模式,其中X是“某事”。
X://X.X
X://X.X...
等。
X.X
X.X...
等
如果字符串包含其中一种模式,那么对我来说就足够了。这样,www.example.com:8888
之类的网址仍会匹配。我已经使用preg_match
尝试了许多不同的REGEX组合,似乎无法按照我想要的方式运行。关于SO,我已经咨询了许多其他相关的REGEX问题,但我的阅读并没有帮助我。
有任何帮助吗?如果您愿意,我很乐意提供更多信息,但我不知道您还需要什么。
答案 0 :(得分:1)
这需要练习,但这是我使用正则表达式测试器(http://www.regextester.com/)来检查我的模式:
^.+(:\/\/|\.)([a-zA-Z0-9]+\.)+.+
我的方法是从一开始就慢慢建立我的模式,一次添加一个。这个备忘单非常有助于记住http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/所有内容。
基本上,模式从字符串的开头开始,检查后面跟着的任何字符://或。然后检查字母和数字的分组,然后是a。以任意数量的字符结尾。
可能会通过分组来改进模式,以便不传递无效字符。但这个很快又脏。您可以将第一个和最后一个.
替换为有效的字符。
的更新强> 的
根据这里的评论是一个更新的模式:
^.+?(:\/\/|\.)?([a-zA-Z0-9]+?\.)+.+
答案 1 :(得分:0)
/^(.+:\/\/)?[^.]+\.[^.\/]+([.\/][^.\/]+)*$/