1

私は最近正規表現を学んでおり、これが可能かどうか疑問に思っています:

Twitter フィードを取得していて、ツイートにアクセスできますが、それらのツイートを自分の Web サイトに表示したい場合、リンク、@ 返信、およびハッシュ タグはすべてリンクされていません。そこで、それらをリンクするプロセスを開始しました。@ の返信を見て、質問があります。

これが私の正規表現です:

$content = '@jason is awesome.';
$reply = '/@(\w+)/';

if(preg_match($reply, $content, $matches)){
  var_dump($matches[0]);
}

そのため、「@jason」が返されますが、@ を使用して検索する方法があるかどうかを知りたいのですが、その後に続くもののみを返します-「jason」だけです。正規表現でこれを行うにはどうすればよいですか?

4

3 に答える 3

0

Doubleが述べたように、 $matches[1] はあなたが望むものを与えます。$matches[0] は特殊で、一致する文字列全体が含まれています。リスト内の後続の項目は、キャプチャされたグループです。

于 2012-05-15T16:39:00.190 に答える
0

ドキュメントから、最初の後方参照があるように見え$matches[1]ますが、これはあなたの場合は jason でなければなりません。ここでテストできます: http://www.solmetra.com/scripts/regex/index.php

于 2012-05-15T16:41:24.010 に答える
0

#$^&*マニュアルを読んでください..それはまさにそこにあります...

一致が提供された場合は、検索結果が入力されます。$matches[0] には完全なパターンに一致したテキストが含まれ、 $matches[1] には最初にキャプチャされた括弧で囲まれたサブパターンに一致したテキストが含まれます。

百聞は一見に如かず

于 2012-05-15T16:42:17.170 に答える