替换百分比(符号和值)和方括号

问题描述:

我从客户机接收像这样的一个字符串:替换百分比(符号和值)和方括号

"a, b, c, d 5%, e, f, g 76%, h (string,string), i" 

我想创建一个正则表达式可以从字符串中删除的5%,76%(和任何其他可能的百分比值n%)和括号(括号的开头用逗号代替)。期望的结果是:

"a, b, c, d, e, f, g, h, string, string, i" 

这可能与PHP?

+2

是的,它可以使用正则表达式'preg_replace',你到现在为止尝试过什么? – DhruvPathak

+0

由于不擅长正则表达式,我一直在寻找能够帮助我的人。 – Battery

+0

这很简单,你需要2个替换操作,一个替换为空字符串,一个替换为逗号。也许你对[正则表达式的基础知识]感兴趣(http://wp.me/p2pTzU-4)。 – stema

是的,这是可能的,使用PHP, 使用此功能: http://php.net/manual/en/function.preg-replace.php

你需要写一个正则表达式匹配您的条件。

您想使用此代码:

preg_replace('/ *\d*\%/','', 'a, b, c, d 5%, e, f, g 76%, h (string,string), i'); 

这里是example(开关更换标签和清洁替代文本)

+0

“g 76%”只变成“g 7” – candyleung

+0

你说得对。修正了。 –

+0

我确实相信这个答案是正确的。 –

$cleaned = preg_replace('/[%()]/', '', $input) 

你的牙套的定义是有点不清楚,但如果我假设没有其他开口的花括号,请使用:

$line = "a, b, c, d 5%, e, f, g 76%, h (string,string), i"; 
$line = preg_replace('/\s+\d+%/', '', $line); 
$line = preg_replace('/\s*\(/', ', ', $line); 
$line = preg_replace('/\s*\)\s*/', '', $line); 
$line = preg_replace('/,(\S)/', ', $1', $line); 
echo $line; 

$string = "a, b, c, d 5%, e, f, g 76%, h (string,string), i"; 
$string = preg_replace('/\s+\d+%|\)/', '', $string); 
$string = str_replace('(', ',', $string); 
$string = preg_replace('/\s*,\s*/', ', ', $string);