私は文字列を持っています:
Product, Q.ty: 1, Price: 120.00
最初のコンマから最後の 2 桁の 10 進数 (.00) までのすべてを選択したい - または、言い換えると、Product
変数である を選択します。変数ではないの, Q.t
は文字列の最後の 2 文字であり、文字列の最後の 2 文字の前にドットが 2 桁あることも知られてい.
ます。0
0-9
これを使用して文字列を一致させました:
preg_replace('/' . preg_quote(', Q.t') . '.*?' . preg_quote('.00') . '/', '', $data );
問題は、最後の 2 桁が 00 ではなく、50、40、30 などの場合に失敗することです。1 桁の「0」で同じ正規表現を使用すると、それがキャッチされるため、どちらも機能しません。前の例のように文字列の最初の 0 であり、残りの 0 は除外されます。
この式を調整して、「.」が前にある数字のグループをキャッチする方法 ドット?
*もう 1 つ注意: この preg_replace は foreach ループ内にあります。一部のデータは、渡そうとしているパターンとまったく一致しません。これは問題ないので、そのような場合は文字列をそのまま印刷できます。しかし、一致する foreach のケースでは、文字列の一部を何も置き換えたくない*
ありがとうございました