Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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 删除两个”之间的特征线(\n);_Php_Regex - Fatal编程技术网

Php 删除两个”之间的特征线(\n);

Php 删除两个”之间的特征线(\n);,php,regex,Php,Regex,我在这里再次问:) 假设我在PHP中有一个字符串,如下所示: Lorem ipsum dolor sit amet, consectetur adipiscing elit. "Sed et est eget lorem congue eleifend. Fusce luctus" 好的,你可以看到这两个引号符号中的字符串-->”,对,如果在这两个引号符号之间有一个文本,在db中,它不应该有这样的换行符,有没有一种方法,在PHP中带有preg_replace函数的正则表达式中,以这两个符号之间

我在这里再次问:)

假设我在PHP中有一个字符串,如下所示:

Lorem ipsum dolor sit amet, consectetur
adipiscing elit. "Sed et est eget lorem congue
eleifend. Fusce luctus"
好的,你可以看到这两个引号符号中的字符串-->”,对,如果在这两个引号符号之间有一个文本,在db中,它不应该有这样的换行符,有没有一种方法,在PHP中带有preg_replace函数的正则表达式中,以这两个符号之间的换行符为目标并删除它们

谢谢你们抽出时间,伙计们,
Mart

您应该能够使用内置的转义函数,例如,通过这种方式,它们将被转义,这意味着您将保留信息,但它将对数据库友好。

有关匹配或嵌套元素(在本例中是匹配的引号)的问题对于正则表达式来说通常有点棘手

首先,让我在这里做一个假设:在您的输入中不允许使用引号内的转义引号(即,您从来没有
Lorem“ipsem\”dolor“
或类似的内容)

根据这个假设,您的问题可以归结为:找到一个
\n
,后面跟一个奇数的
(一直计数到字符串末尾)。为确保此条件,我们可以使用先行。为避免前导或尾随空格出现问题,我们可以匹配
\n
周围的任何空格,并将其替换为单个空格

$result = preg_replace('/\s*\n\s*(?=[^"]*"(?:[^"]*"[^"]*")*[^"]*$)/', ' ', $input);

为了实现互操作性,您可能需要将
\n
替换为
[\r\n]

不,我想删除特征线,只有特征线位于两个引号之间“…这就是完美本身,我的朋友。。。非常感谢您的解释和花在这方面的时间!太神了谢谢你!