2

Rails を勉強していて、Twitter のようなアプリを書こうとしています。

で始まるハッシュタグと で始まる#ユーザー名を強調@表示し、それらから URL を作成する簡単な方法はありますか?

適切な宝石を見つけることができませんでした。それとも自分のものにするべきですか?

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

4

2 に答える 2

1

文字列#スキャンを使用

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 に答える