2012-05-07 52 views
2

对于我的rails应用程序,我想要一个匹配域和IP地址的正则表达式。匹配域和IP地址的正则表达式

+0

正如其他海报已经指出,你的问题是模糊你想要匹配的模式。你想查找网址或只是域名?由于有很多顶级域名,几乎所有带点的东西都可能是域名:foo.com,foo.ac.uk,foo.info,foo.bar.bletch.mil,foo.de等。 –

回答

0

你可以使用这样的事情:

\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b

here服用。

编辑:对于域名,你可以使用类似这样的东西:^http://(.*?)/?.*。但是,如果您可以发布一些域名示例,这将有所帮助。我发布的正则表达式应该匹配以http://开头的url,然后它会将域名(如google.com)放入一个组中,然后您可以稍后访问它。

+0

谢谢npinti,但它只会匹配ip地址,但当我输入域名如http://google.com时可能会失败? –

+0

@Harshal_m_joshi:是的,你是对的。我已经修改了我的答案,如果您要发布一些您想要匹配的示例域名,将有助于创建相应的正则表达式。 – npinti

0

如果你正在服用的URL,并试图将主机部分匹配,

/^http:\/\/([^\/])\// 
+0

其他协议?不应该'/^[a-z] *:\/\ /([^ \ /])\ //'更合适? – shime

+0

是的,那样更好。 –

0

每当我需要的东西,一个正则表达式,我先去Regular Expressions Library。正是在那里,我发现这一个看起来很合理:

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$ 

我会用一个独立的正则表达式的IP地址,并询问是否匹配字符串任而不是试图让两个模式适合在单个匹配。

0

^

我会说你需要更具体的,我也喜欢用http://www.rubular.com/ 开发我regexs。它在编辑器下有一个参考键,所以你可以使用它。你可以玩得开心,同时完成你的工作!