0

出于某种原因,我总是卡在做任何超出非常基本的正则表达式的事情。

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

我希望它匹配以下 X 是“某物”的模式。

X://X.X

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

X.X

X.X...ETC

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

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

4

2 回答 2

1

这需要练习,但这是我使用正则表达式测试器 ( http://www.regextester.com/ ) 来检查我的模式的一个:

^.+(:\/\/|\.)([a-zA-Z0-9]+\.)+.+

我的方法是从一开始就慢慢构建我的模式,然后一次添加一个。这个备忘单对于记住http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/一切是什么非常有帮助。

基本上,该模式从字符串的开头开始,并检查后跟 :// 或 的任何字符。然后检查字母和数字的分组,后跟一个 . 以任意数量的字符结尾。

该模式可能会通过分组来改进,以不传递无效字符。但这一个又快又脏。.您可以用有效的字符替换第一个和最后一个。

更新

根据这里的评论是一个更新的模式:

^.+?(:\/\/|\.)?([a-zA-Z0-9]+?\.)+.+
于 2013-04-09T02:17:07.277 回答
0
/^(.+:\/\/)?[^.]+\.[^.\/]+([.\/][^.\/]+)*$/
于 2013-04-09T02:59:37.993 回答