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

时间:2012-05-10 06:28:37

标签: php regex

我从客户端收到一个像这样的字符串:

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

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

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

这可以用PHP吗?

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

您需要编写符合条件的正则表达式。

答案 2 :(得分:1)

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

$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;

答案 3 :(得分:0)

您想使用此代码:

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

这是example(切换到替换标签并清除替换文本)

答案 4 :(得分:0)

$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);