2

我正在研究 Rails 并尝试编写类似 Twitter 的应用程序。

有没有一种简单的方法可以突出以 开头的主题标签和以 开头的#用户名@,并从中制作 URL?

我找不到合适的宝石。还是我应该自己做?

例如:https ://twitter.com/Xaput/status/383695262796873728

4

2 回答 2

1

使用字符串#scan

您可以使用 Ruby 的String#scan方法在推文中查找所有匹配的表达式。例如:

str = 'Foo #bar! Baz @quux. #foobar1'

hashtags = str.scan /#[_\p{Alpha}][\p{Alnum}_]+/
#=> ["#bar", "#foobar1"]

users = str.scan /(?<=[\A\s\\.])@[_\p{Alnum}][^\p{Punct}\p{Blank}]{,14}/
#=> ["@quux"]

这将捕获大多数有效的用户名和主题标签,但可能存在预期结果模棱两可的极端情况(未提及\@foo,或奇怪但有效的电子邮件,如foo.@example.com)。在这种情况下,您将需要调整正则表达式或对结果执行一些额外的验证。你的旅费可能会改变。

参考

于 2013-09-27T22:03:51.267 回答
1

更多细节会有所帮助。

你可以用正则表达式捕捉它们。

学习正则表达式。他们值得你花时间。

http://rubular.com/

http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ

您没有用 HTML 标记它,但这听起来像是您所要求的一个重要方面。

于 2013-09-27T20:39:54.017 回答