正規表現とPHPでTwitterのRTさんを見つけよう
-
13-09-2019 - |
質問
私は、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";