我需要正则表达式php中的帮助
有必要使用括号中的数字,某些情况下会重复使用括号
两个不同字符串的示例:
2.0 16V Quadrifoglio (114 kW / 155 PS)
1.4 TB (940FXB1A) (125 kW / 170 PS)
我需要它看起来像这样:
2.0 16V Quadrifoglio 155 WORD
1.4 TB 170 WORD
我有验证码
$text = '2.0 16V Quadrifoglio (114 kW / 155 PS)';
preg_match('#\((.*?)\)#', $text, $match);
print $match[1];
结果是:
114 kW / 155 PS
请帮助从括号中查找数字
答案 0 :(得分:0)
您只需要捕获/
之后的数字,并用该数字替换整个括号表达式。
$newText = preg_replace('#\([^)]*/\s*([^)]*)\)#', '$1', $text);
答案 1 :(得分:0)
我需要它看起来像这样:
2.0 16V Quadrifoglio 155 WORD 1.4 TB 170 WORD
模式:~^([^(]*).*?(\d+) PS.*~
替换:$1$2 WORD
演示:https://regex101.com/r/GiJDi5/2
输出:
2.0 16V Quadrifoglio 155 WORD
1.4 TB 170 WORD
PHP:(Demo)
$strings = [
'2.0 16V Quadrifoglio (114 kW / 155 PS)',
'1.4 TB (940FXB1A) (125 kW / 170 PS)'
];
var_export(preg_replace('~^([^(]*).*?(\d+) PS.*~', '$1$2 WORD', $strings));
输出:
array (
0 => '2.0 16V Quadrifoglio 155 WORD',
1 => '1.4 TB 170 WORD',
)