$str = 'title="room 5 stars"';
preg_match_all('/title="([0-9]+)"/sm', $str, $rate);
タイトルから5番を取得する必要があります。正規表現は機能しません!Preg_Matchを使用して番号を取得する
私はこれを行う場合は、次の
preg_match_all('/title="([0-9]+)"/sm', $str, $rate);
私が手:
'/title="([0-9]+)"/sm'
は私が間違って行くんでした:
room 5 stars
しかし、この1つは何も返さないのですか?あなたはあなたの番号の前後にテキストを一致させるのを忘れ
$str = 'title="room 5 stars"';
preg_match_all('/title=".*(\d+).*"/', $str, $rate);
// The number is then in $rate[1][0];
は、あなたが実際にあなたの正規表現をテストしたことがありますか?それは文字列と一致しますが、番号を取得しません。 – ohaal
@ohaal no違反ですが、間違いを教えてもらえますか?将来私はそれをしません。グループマッチングのコードを編集しました。 – Vishal
私は以前のコメントで詳しく説明しないことをお詫びします、私は急いでいました。あなたの答えを修正したように見える-1を削除しました。あなたは '/ title ="。*?(\ d)*。*? "/'を持っていましたが、これは実際の数字を捕捉しませんでした。これは、 '*'は '{0、}'と等価であり、非貪欲なマッチ '。*?'はマッチするものがないので、全ての文字列はあなたの最後の非貪欲'。*?'にマッチします。 – ohaal