从括号中找到regex php

时间:2018-06-29 00:20:39

标签: php regex

我需要正则表达式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

请帮助从括号中查找数字

2 个答案:

答案 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',
)