3

興味があります。正規表現 (主に Ruby) を使用する以外に、文字列内のハッシュタグを解析するより高速で優れた方法はありますか?

編集
たとえば、文字列を解析しThis is a #hashtag, and this is #another one!て単語#hashtagandを取得したい#another。私は#\S+正規表現に使用しています。

4

2 に答える 2

6

コード (必要なコード) が表示されないため、正規表現をどのように使用しているかを推測しています。

#\S+必要に応じて適切なパターンですがscan、文字列内のすべての出現箇所を取得するにはおそらく最良の方法です。

'This is a #hashtag, and this is #another one!'.scan(/#\S+/)
=> ["#hashtag,", "#another"]

コンマを解析したくない場合は、/\B#\w+/ にする必要があります

はい私は同意する。/\B#\w+/より理にかなっています。

于 2012-12-17T02:28:38.697 に答える
4

多分

うーん、アイデア....

  • 試してみs.split('#')て、おそらく実際のハッシュタグにのみ正規表現を適用する s.split('#').drop(1).map { |x| x[/\w+/] }こともできます --- 速くなるかもしれないし、速くならないかもしれませんが、明らかに醜いです
  • ハッシュタグを抽出する C 拡張を作成できます。
  • プログラムをプロファイリングして、この場合に最適化が本当に必要かどうかを確認できます。
于 2012-12-16T21:25:21.970 に答える