我正在尝试删除句点之前的所有空格和文本中的逗号,然后才回显它。
文本看起来像这样,并且全部都有空格。 Bla bla bla ...
这是我的代码,虽然它成功删除了任何()并将其替换为“nothing”:
$strip_metar = array('( )' => '', ' . ' => '. ', ' , ' => ', ');
$output_this = $text->print_pretty();
$output_this = str_replace(array_keys($strip_metar),
array_values($strip_metar),
$output_this);
有什么想法吗?
答案 0 :(得分:6)
我没有50个代表所以我无法评论,但这只是为了扩展Moylin的答案:
要使其成为1个查询,请执行以下操作:
$output_this = preg_replace('/\s+(?=[\.,])/', '', $output_this);
正则表达式的解释:
\ s匹配空格
+匹配1到无穷大时间。
(?=)是一个积极的前瞻。这意味着“你必须在主要群体之后找到它,但不要包含它。”
[]是一组要匹配的字符。
\。是一个转义期(因为。匹配正则表达式中的任何内容)
,是逗号!
答案 1 :(得分:2)
要删除句点.
和逗号,
之前的所有空格,您可以将数组传递给str_replace函数:
$output_this = str_replace(array(' .',' ,'),array('.',','),$string);
在您提供的示例中,如果句点后面没有空格' . '
答案 2 :(得分:1)
$output_this = preg_replace('/\s+\./', '.', $output_this);
$output_this = preg_replace('/\s+,/', ',', $output_this);
这应该是准确的。
抱歉,我不是最好将此优化为单个查询。 编辑:删除$为字符串结尾,不确定你是否会这样想。
答案 3 :(得分:0)
$content = "This is , some string .";
$content = str_replace( ' .', '.',$content);
$content = str_replace( ' ,', ',',$content);
echo $content;