如何删除所有标记内的空格,但是,这很重要,不删除\ n
在这个例子中,我有两种类型的标签。我正在寻找可以在任何文本中使用任何类型标签的东西。
我有这个:
$text ="<p> some text </p><h2> some text</h2>\n
<p>some text </p><h2>some text </h2>";
我想要这个:
<p>some text</p><h2>some text</h2>\n
<p>some text</p><h2>some text</h2>
我试过了:
$text = preg_replace ("/>\s+/", ">", $text);//remove space from start
$text = preg_replace ("/\s+</", "<", $text);//and end
echo $text;
问题是,它也删除了\ n。
答案 0 :(得分:4)
您已关闭,请尝试使用:
current_user.players_users.pluck(:permission)
如果您想删除表格:
$text = preg_replace ("/> +/", ">", $text);//remove space from start
$text = preg_replace ("/ +</", "<", $text);//and end
$text = preg_replace ("/>\h+/", ">", $text);//remove space from start
$text = preg_replace ("/\h+</", "<", $text);//and end
代表水平空间。
答案 1 :(得分:1)
这里&lt;和&gt;将被取代 试试
$text = preg_replace ("/> /", ">", $text);//remove space from start
$text = preg_replace ("/ </", "<", $text);//and end
echo $text;
答案 2 :(得分:0)
我认为你要找的东西是php中的trim-function。没有必要使用正则表达式。只需用你的字符串变量调用它就可以了
答案 3 :(得分:0)
要移除<p>/</p>
标记之后/之前的空格,您可以使用:
$text = str_replace('<p> ', '<p>', $text);
$text = str_replace(' </p>', '</p>', $text);
你可以在一个函数
中打开它function mytrim ( $text ) {
$myChars = array('p', 'h2');
foreach ( $myChars as $chr ) {
$tag1 = '<' . $char . '> ';
$tag2 = ' </' . $char . '>';
$text = str_replace( $tag1, '<'. $char . '>', $text);
$text = str_replace( $tag2, '</'. $char . '>', $text);
}
return $text;
}
使用你要编写的功能
$text = mytrim($text);
答案 4 :(得分:0)
尝试
$text = str_replace(array('> ',' <'),array('>','<'),$text);
echo $text;
不使用正则表达式。
答案 5 :(得分:0)
使用preg替换匹配\ r或\ n或两者并将其替换为空。
preg_replace( "/\r|\n/", "", $text);
删除缩进,这只是空白,可以使用php的函数修剪删除
$trimmed = trim($text);
此外,trim接受第二个参数,您可以传入该参数并进行修剪:
$trimmed = trim($text, '\t.');
例如,它将修剪制表符。
此代码对您有用
答案 6 :(得分:0)
另一种选择可能是:
<?php
$text ="<p> some text </p><h2> some text</h2>
<p>some text </p><h2>some text </h2>";
$result = preg_replace_callback(
'|>([^\r\n]*?)<|',
function ($hit) {
return '>'.trim($hit[1]).'<';
},
$text
);
echo '<pre>' . htmlentities($result) . '</pre>'; // for testing only
?>