替换PHP中的\n或\\n,但不替换;";

替换PHP中的\n或\\n,但不替换;";,php,str-replace,Php,Str Replace,当我为\n执行stru替换时,它会一直替换脚本中的所有字母“n”。我想做的是将“再见”替换为“再见”。除了去掉句子中的每一个n。我一直听到“再见” 是否可以指定目标,特别是“\n”而不是“n” 简单的问题。也许是尼姆罗迪克。感谢您的时间和解决方案 编辑>添加代码>这是我试图修复的代码 $text=“Description:加入我们,星期日644\u2022牧师Ed Weiss\u2022信仰世界\u2022信教教会\u2022伊利诺伊州巴特利特\u2022上午11:30开始\nwo.org\/w

当我为\n执行stru替换时,它会一直替换脚本中的所有字母“n”。我想做的是将“再见”替换为“再见”。除了去掉句子中的每一个n。我一直听到“再见”

是否可以指定目标,特别是“\n”而不是“n”

简单的问题。也许是尼姆罗迪克。感谢您的时间和解决方案

编辑>添加代码>这是我试图修复的代码

$text=“Description:加入我们,星期日644\u2022牧师Ed Weiss\u2022信仰世界\u2022信教教会\u2022伊利诺伊州巴特利特\u2022上午11:30开始\nwo.org\/webcast\n”;
预匹配(“/Description:([^\\r\\n]+)/s”,$text,$b);
$text=preg_replace(“/\u2022/”、“•”、$text);
$text=preg_replace(“/[\n\r]/”,“”,$text);
echo$文本;

在我的测试中,我松开了“r”和“n”字母。

新行和
n
是两个完全不同的字符

在编程语言中,新行几乎总是表示为
\n
,但实际上它只是字符代码10(十进制)。n、 另一方面,是字符代码110(十进制)。除了转义序列,它们之间根本没有关系

要替换
\n
且仅替换
\n
请使用:

$str = str_replace("\n", " ", $string);
编辑1:有关示例,请参见注释中Conner的代码段

编辑2:正如JoeCortopassi所指出的,PHP将只解析某些类型的字符串文本内部的
\n
。例如,
'\n'
将以文本
\n
字符串结束。(字符
\
后跟字符
n

或:


新行和
n
是两个完全不同的字符

在编程语言中,新行几乎总是表示为
\n
,但实际上它只是字符代码10(十进制)。n、 另一方面,是字符代码110(十进制)。除了转义序列,它们之间根本没有关系

要替换
\n
且仅替换
\n
请使用:

$str = str_replace("\n", " ", $string);
编辑1:有关示例,请参见注释中Conner的代码段

编辑2:正如JoeCortopassi所指出的,PHP将只解析某些类型的字符串文本内部的
\n
。例如,
'\n'
将以文本
\n
字符串结束。(字符
\
后跟字符
n

或:

选项#1

如果您有这样显示的字符串:

see\nyou\nsoon\n
see
you
soon
…然后您将要使用此选项:

$str = str_replace('\n', ' ', $string);
$str = str_replace("\n", '', $string);
…因为PHP将显示反斜杠字符,后跟“n”字符。您使用单引号,因为php将其解释为不带转义字符的

`

选项2

另一方面,如果有一个字符串显示如下:

see\nyou\nsoon\n
see
you
soon
…然后您将要使用此选项:

$str = str_replace('\n', ' ', $string);
$str = str_replace("\n", '', $string);
…因为php会将此字符串视为需要修改的内容。这意味着将处理变量,并将转义字符(如
\n
\t
\\
)解释为其文字字符值

从您所说的内容来看,您的字符串似乎是用应该是新行语句的语句来编写的,但这些语句从未被解释过,因此选项1可能是您最好的选择选项1

如果您有这样显示的字符串:

see\nyou\nsoon\n
see
you
soon
…然后您将要使用此选项:

$str = str_replace('\n', ' ', $string);
$str = str_replace("\n", '', $string);
…因为PHP将显示反斜杠字符,后跟“n”字符。您使用单引号,因为php将其解释为不带转义字符的

`

选项2

另一方面,如果有一个字符串显示如下:

see\nyou\nsoon\n
see
you
soon
…然后您将要使用此选项:

$str = str_replace('\n', ' ', $string);
$str = str_replace("\n", '', $string);
…因为php会将此字符串视为需要修改的内容。这意味着将处理变量,并将转义字符(如
\n
\t
\\
)解释为其文字字符值


从您所说的内容来看,听起来您的字符串是用应该是新行语句的语句来写的,但这些语句从未被解释过,因此选项1可能是您最好的选择

您忘记了包含代码。。可能重复使用preg\u替换为不正确的正则表达式。可能更容易使用@Corbin和我在下面描述的str_replace()示例之一,因为您正在做的事情我没有忘记。。。n00bs可以是b00bs。很抱歉,您忘记包含您的代码..可能使用不正确的正则表达式替换了重复的preg_。可能更容易使用@Corbin和我在下面描述的str_replace()示例之一,因为您正在做的事情我没有忘记。。。n00bs可以是b00bs。抱歉。我现在不知道OP是想替换NL还是文字
'\\n'
。我可能想编辑这个
'\n'==='\\n'='\\n'
到这个
'\n'==='\\n'
@JoeCortopassi这三者实际上是相等的,尽管它显然不是有效的PHP语法。@JoeCortopassi我大脑的一部分可以看到它的逻辑,然后我大脑的另一部分会说,“什么——?!:)@JoeCortopassi啊!不知何故,我对单引号的逃避逃过了。我所能想到的就是“等等……没有什么需要用单引号来逃避!”哈哈。(虽然我不想说他们的设计古怪通常有合法的原因:p[这实际上不是一个设计古怪])我现在很困惑OP是想替换NL还是文字
'\\n'
。我可能想编辑这个
'\n'===“\\n”=='\\n'
,只编辑这个
'\n'==='\\n'