基本正则表达式

时间:2013-04-09 02:07:03

标签: php regex

出于某种原因,我总是陷入过去非常基本的正则表达式。

我正在尝试制作一个正常的表达式,种类看起来像一个URL。我只想要基本检查。

我希望它匹配以下模式,其中X是“某事”。

X://X.X

X://X.X...等。

X.X

X.X...

如果字符串包含其中一种模式,那么对我来说就足够了。这样,www.example.com:8888之类的网址仍会匹配。我已经使用preg_match尝试了许多不同的REGEX组合,似乎无法按照我想要的方式运行。关于SO,我已经咨询了许多其他相关的REGEX问题,但我的阅读并没有帮助我。

有任何帮助吗?如果您愿意,我很乐意提供更多信息,但我不知道您还需要什么。

2 个答案:

答案 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)

/^(.+:\/\/)?[^.]+\.[^.\/]+([.\/][^.\/]+)*$/