我从客户那里收到一个像这样的字符串:
"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吗?
$cleaned = preg_replace('/[%()]/', '', $input)
是的,这可以通过 PHP,使用这个函数: http: //php.net/manual/en/function.preg-replace.php
您将需要编写一个正则表达式来匹配您的条件。
您对大括号的定义有点不清楚,但如果我假设没有其他打开右大括号,请使用:
$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;
您想使用此代码:
preg_replace('/ *\d*\%/','', 'a, b, c, d 5%, e, f, g 76%, h (string,string), i');
这是示例(切换到替换选项卡并清理替换文本)
$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);