Rails を勉強していて、Twitter のようなアプリを書こうとしています。
で始まるハッシュタグと で始まる#
ユーザー名を強調@
表示し、それらから URL を作成する簡単な方法はありますか?
適切な宝石を見つけることができませんでした。それとも自分のものにするべきですか?
Rails を勉強していて、Twitter のようなアプリを書こうとしています。
で始まるハッシュタグと で始まる#
ユーザー名を強調@
表示し、それらから URL を作成する簡単な方法はありますか?
適切な宝石を見つけることができませんでした。それとも自分のものにするべきですか?
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
)。このような場合、正規表現を調整するか、結果に対して追加の検証を実行する必要があります。あなたのマイレージは異なる場合があります。