Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正则表达式删除前导和尾随<;br/>;在<;p>;标签_Php_Regex - Fatal编程技术网

PHP正则表达式删除前导和尾随<;br/>;在<;p>;标签

PHP正则表达式删除前导和尾随<;br/>;在<;p>;标签,php,regex,Php,Regex,我一辈子都搞不懂这个 我需要一个正则表达式,它将去掉标记中的任何前导或尾随的标记 比如说 一些测试文本一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本 应该成为 一些测试文本一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。 我觉得这应该很简单,但我遇到了一个障碍。任何帮助都将不胜感激。

我一辈子都搞不懂这个

我需要一个正则表达式,它将去掉
标记中的任何前导或尾随的

标记

比如说



一些测试文本
一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本


应该成为

一些测试文本
一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。


我觉得这应该很简单,但我遇到了一个障碍。任何帮助都将不胜感激。

您只需向前看和向后看
,以及一个非捕获组,以查看一次或多次出现的

对于匹配前导

标记:

(?<=<p>)(?:\s*<br\s*\/?>)+\s*
(?:\s*<br\s*\/?>)+\s*(?=<\/p>)

(?您只需向前看和向后看
,以及一个非捕获组,用于一次或多次出现

的某些变体

对于匹配前导

标记:

(?<=<p>)(?:\s*<br\s*\/?>)+\s*
(?:\s*<br\s*\/?>)+\s*(?=<\/p>)

(?我们可以在没有正则表达式的情况下执行此操作。
// Method1 :: Finding and replacing unwanted tags
$str1 = '<p> <br />Some test text. <br /> Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. <br /><br /><br /></p>';

$findTags = array('<br>', '<br />');
$replacement = array();

// Case insensitive replacement
$str1 = str_ireplace($findTags, $replacement, $str1);
print_r($str1);

// Method 2:: Stripping all HTML tags except allowed tags

$str2 = '<p> <br />Some test text. <br /> Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. <br /><br /><br /></p>';
$str2 = strip_tags($str2, '<p>');

echo $str2;
?>
//方法1::查找和替换不需要的标记
$str1='
一些测试文本。
一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。


; $findTags=数组(“
”,“
”); $replacement=array(); //不区分大小写的替换 $str1=str_-ireplace($findTags,$replacement,$str1); 印刷品(str1美元); //方法2::剥离除允许标记之外的所有HTML标记 $str2='
一些测试文本。
一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。


; $str2=带标签($str2,); echo$str2; ?>
参考链接:


我们可以在没有正则表达式的情况下实现这一点。
// Method1 :: Finding and replacing unwanted tags
$str1 = '<p> <br />Some test text. <br /> Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. <br /><br /><br /></p>';

$findTags = array('<br>', '<br />');
$replacement = array();

// Case insensitive replacement
$str1 = str_ireplace($findTags, $replacement, $str1);
print_r($str1);

// Method 2:: Stripping all HTML tags except allowed tags

$str2 = '<p> <br />Some test text. <br /> Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. <br /><br /><br /></p>';
$str2 = strip_tags($str2, '<p>');

echo $str2;
?>
//方法1::查找和替换不需要的标记
$str1='
一些测试文本。
一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。


; $findTags=数组(“
”,“
”); $replacement=array(); //不区分大小写的替换 $str1=str_-ireplace($findTags,$replacement,$str1); 印刷品(str1美元); //方法2::剥离除允许标记之外的所有HTML标记 $str2='
一些测试文本。
一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。一些测试文本。


; $str2=带标签($str2,); echo$str2; ?>
参考链接:


重新开始搜索,但使用DOMDocument进行HTML处理后,您会发现一些不需要很难维护正则表达式的好解决方案。对于真正的傻瓜式解决方案,您不应该尝试使用正则表达式。如果将正则表达式用于孤立的字符串集,则正则表达式可以工作,但HTML解析器会简单得多当你开始考虑一些特殊情况时。再次开始搜索,但是使用DOMDocument进行HTML处理,你会找到一些不需要很难维护正则表达式的好解决方案。对于一个真正简单的解决方案,你不应该尝试使用正则表达式。如果这将与一组孤立的字符串一起使用,正则表达式可以工作,但是TML解析器将在您开始查看角案例时变得更简单。非常好!谢谢堆。@TomeA真棒!请确保您真正了解它的工作原理。我不是想给您一些代码来复制/粘贴。非常好!谢谢堆。@TomeA真棒!请确保您真正了解它的工作原理。我不是想给您这么多要复制/粘贴的me代码。
// Method1 :: Finding and replacing unwanted tags
$str1 = '<p> <br />Some test text. <br /> Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. <br /><br /><br /></p>';

$findTags = array('<br>', '<br />');
$replacement = array();

// Case insensitive replacement
$str1 = str_ireplace($findTags, $replacement, $str1);
print_r($str1);

// Method 2:: Stripping all HTML tags except allowed tags

$str2 = '<p> <br />Some test text. <br /> Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. Some test text. <br /><br /><br /></p>';
$str2 = strip_tags($str2, '<p>');

echo $str2;
?>