我有一个字符串,它看起来像这样:
)250 W (501 PS
20 ps
50 ps
LPG) 246 kW (334 PS
分别得到501, 20, 50 and 334
。换句话说:digit
在PS
或ps
前面(不区分大小写)。
我累了,但不是所有情况下都有效,如上面所示:
$str = 'LPG) 246 kW (334 PS';
preg_match('/'d+(.*?)PS/',$str, $m);
print_r($m);
我如何改变我的代码工作为每一个可能的字符串如上所示?
使用这个正则表达式:
/('d+)'s*ps/i
解释:
- 第一个捕获组('d+)
- 'd+匹配数字[0-9]
- 量词:+在一次到无限次之间,尽可能多的次数,根据需要给予回馈[贪心]
- 's*匹配任何空格字符['r'n't'f]
- 量词:*在0到无限次之间,尽可能多的次数,根据需要回馈[贪心]
- ps从字面上匹配字符ps(不区分大小写)
标记:
- i修饰符:不敏感。不区分大小写的匹配(忽略大小写[a-zA-Z])