- ベストアンサー
正規表現の$patternを先日教えていただきましたが
正規表現の$patternを先日教えていただきましたが 全角%の前にある全角の数字だけを抜き出したいのですが 下記の記述で、小数点が出た場合に小数点以下しか拾いません。 88.5%の場合、結果が5となります。 ///////////////////////////// $str=<<<eof 80% すべて半角 82% すべて半角 85% すべて全角 88.5% すべて全角 XX% 不正なデータ 92% まぜこぜ 95% まぜこぜ eof; $pattern="/[0-9]+(?=%)/u"; ////////////// よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
単純になるなら $pattern="/[.0-9]+(?=%)/u"; ただしどこまで精度をだしたいかによって考え方が若干複雑になります。 たとえば・・・ 「88.5%」はいいとして、「88.% 」、「.5% 」、「10.88.5% 」など 中途半端なデータを想定するかどうかで処理がかわってきます。
お礼
そうなんですね、色んな場合が想定できて 確かに、複雑になるとおもいますが 現時点では、yambejp様に教えていただいた patternで運用してみます。 とても助かりました、ありがとうございます。