私の質問は、次の正規表現を変更して、この文字列から数値を取得するだけでなく、文字列から数値を取得するにはどうすればよい160bhp,
です90bhp,
か?
今のところ、3 つの数字のみを取り、2 を無視します。運がなければ。
preg_match_all('/(\d{3})bhp\b,/', $str2b, $bhps);
preg_match_all('/(\d{2,3})bhp\b,/', $str2b, $bhps);
トークンを何回繰り返すことができるかを指定できる追加の量指定子があります。構文は {min,max} です。ここで、min は一致の最小数を示すゼロまたは正の整数であり、max は一致の最大数を示す min 以上の整数です。コンマが存在し、max が省略されている場合、一致の最大数は無限です。
Bt も一致させたい場合は1bhp
、160000bhp
たとえば、代わりにこれを使用します。
preg_match_all('/(\d+)bhp\b,/', $str2b, $bhps);
の左側にある任意の数の数字をキャプチャしますbhp
括弧内の値を に変更するだけです{2,3}
。
preg_match_all('/(\d{2,3})bhp\b,/', $str2b, $bhps);
これは基本的に、一致する前の文字定義の最小/最大数を提供します。