我正在研究Rails并尝试编写类似Twitter的应用程序。
是否有一种简单的方法可以高亮显示从#
开始的主题标签和以@
开头的用户名,并从中创建网址?
我找不到合适的宝石。或者我应该自己制作?
答案 0 :(得分:1)
更多细节会有所帮助。
你可以用正则表达式捕获它们。
学习正则表达式。他们值得你花时间。
http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ
您没有使用HTML标记此内容,但这听起来像是您要问的一大部分内容。
答案 1 :(得分:1)
您可以使用Ruby的String#scan方法查找Tweet中的所有匹配表达式。例如:
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
)。在这种情况下,您需要调整正则表达式或对结果执行一些额外的验证。您的里程可能会有所不同。