質問

私は、Twitter上のすべてのRTシナリオに合わせて、正しい正規表現を見つけようとしている(Twitterの新しいリツイートAPIに待つことができません)。 私はそれを参照してください方法は、RTのは、Twitterから返された文字列の先頭、中間、または末尾にすることができます。 だから、私は最初とこの正規表現の終わりに何かを必要とします:

  

([Rrの])([Ttの])

どんなに私がしようとするもの、私は1つの正規表現のすべてのシナリオを一致させることはできません。
私が試した

  

[^ | \ sの+]

RTは、文字列の先頭に1つ以上の空白文字の後のいずれかに表示されますが、それは文字列またはRTの終了を同じように動作しませんでしたシナリオを一致させます。
私が試した

  

[\ sの+ | $]

「前」が同じ、RTは、いずれかの文字列の最後に表示されるか、またはそれを以下の一つ以上の空白文字があるのケースと一致する - 。それは動作しませんでしたが、

誰かが私がここで間違ってやっているか説明していただけますか?すべてのヘルプや提案は非常

(:)いつものように)理解されるであろう
役に立ちましたか?

解決

あなたは、おそらくのようなもので最も幸せなことでしょう

/\brt\b/i

どの(つまり、単語の境界に囲まれた、ある)RTの孤立インスタンスを見つけ、それ大文字と小文字を区別しないにするために正規表現の末尾に/i修飾子を使用します。

あなたが「アート」と「クォーツ」のような言葉を含むランダムツイートを考えてしまう実際にリツイートされないように、

あなたは単語の境界をしたいです。それでも、それは偽陽性を持っているために起こっています。

デフォルトでは、正規表現をすることができます(とします)どこでも、文字列内の一致するので、あなたは確かにあなたはそれが何であるかを気にしない場合は、あなたの試合を前または従うことができる何のためか、それがある場合は、アカウントにする必要はありません存在ます。

他のヒント

if(preg_match('/\brt\s*@(\w+)/i', $tweet, $match))
    echo 'Somebody retweeted ' . $match[1] . "\n";
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top