【发布时间】:2015-08-24 21:32:59
【问题描述】:
我研究了正则表达式,并试图找到从各种 Twitter 网址中提取用户名的那个。我已经有了这个,但在最后一个示例中失败了,有人可以帮助我吗?
/(https?:\/\/)?(www\.)?(twitter.com\/)?([@])?(\/status\/[0-9]{0,})?([a-z0-9_-])/ig
测试是:
@Username <= "Username"
twitter.com/username <= "username"
www.twitter.com/username <= "username"
http://twitter.com/username <= "username"
https://twitter.com/username/status/608085900145197053 <= "username3" (FAILED)
谢谢!
【问题讨论】:
-
将
@username和twitter.com/whatever解析为两个单独的正则表达式会容易得多。 -
感谢您的评论,问题是,我希望用户能够将他想要的任何 Twitter 网址输入到表单字段中,然后仅提取用户名并将其添加到数据库...对于 UX,我希望他能够输入他想要的任何 twitter url,甚至是 @username 的东西。
-
这很好,与我的观点无关。您可以在两个单独的正则表达式中执行此操作,这将使正则表达式更易于调试。
-
坦率地说,我认为您甚至不需要正则表达式。您基本上有两种用例——一种是用户名在
@之后,另一种是在twitter.com/之后。在这两种情况下都可以使用简单的字符串操作来提取用户名值。