1

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

"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吗?

4

5 回答 5

3
$cleaned = preg_replace('/[%()]/', '', $input)
于 2012-05-10T06:37:56.183 回答
1

是的,这可以通过 PHP,使用这个函数: http: //php.net/manual/en/function.preg-replace.php

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

于 2012-05-10T06:31:25.480 回答
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;
于 2012-05-10T06:38:50.527 回答
0

您想使用此代码:

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

这是示例(切换到替换选项卡并清理替换文本)

于 2012-05-10T06:33:51.747 回答
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);
于 2012-05-10T07:06:22.697 回答