Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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 正则表达式-多次插入_Php_Regex - Fatal编程技术网

Php 正则表达式-多次插入

Php 正则表达式-多次插入,php,regex,Php,Regex,同样的例子,我有: Hello world!! Hello all! 我想用句号替换每个“!”。使用PHP。我该怎么做呢?我想起来了。我不敢相信我以前没见过这个!是一个元字符,所以我需要在它前面加一个“\”。这就是它不起作用的原因。谢谢。我知道了。我不敢相信我以前没见过这个!是一个元字符,所以我需要在它前面加一个“\”。这就是它不起作用的原因。谢谢。你不觉得用str_替换就足够了吗 preg_replace('#\!+#s', 'what_ever_you_want', $subject)

同样的例子,我有:

Hello world!!
Hello all!

我想用句号替换每个“!”。使用PHP。我该怎么做呢?

我想起来了。我不敢相信我以前没见过这个!是一个元字符,所以我需要在它前面加一个“\”。这就是它不起作用的原因。谢谢。

我知道了。我不敢相信我以前没见过这个!是一个元字符,所以我需要在它前面加一个“\”。这就是它不起作用的原因。谢谢。

你不觉得用str_替换就足够了吗

preg_replace('#\!+#s', 'what_ever_you_want', $subject)
$str = str_replace('!','.',$str);

你不认为stru_替换就足够了吗

$str = str_replace('!','.',$str);

是要用一个句点替换多个感叹号,还是要用相同数量的句点替换它们?使用相同数量的句点。是要用一个句点替换多个感叹号,或者您想用相同数量的句点替换它们吗?使用相同数量的句点。不,我需要为其他操作执行正则表达式。鉴于您的“使用相同数量的句点”注释,我仍然看不到使用正则表达式的理由。请注意,str_replace可以处理多个字符。我不需要为其他操作执行正则表达式。考虑到您的“具有相同句点数”注释,我仍然看不到使用正则表达式的理由。请注意str#u replace可以处理多个字符对不起,这是一个问题,但为什么要使用这个#和s符号?PCRE regexp的第一个字符是分隔符,在本例中是磅符号。在结束分隔符之后可以放置许多修改器,这些修改器可以更改表达式的工作方式。在这种情况下,将使用
s
修饰符。#是分隔符,您可以使用任何您想要的作为分隔符(我想regex元字符除外,但我不确定),“s”是一个修饰符,使其具有多行兼容性。很抱歉,问一下为什么要使用这个#和s符号?PCRE regexp的第一个字符是分隔符,在这种情况下,英镑符号。在结束分隔符之后可以放置许多修改器,这些修改器可以更改表达式的工作方式。在这种情况下,将使用
s
修饰符。#是分隔符,您可以使用任何您想要的作为分隔符(我想除了regex元字符,但我不确定)并且“s”是一个修饰符,它使其多行兼容。
不是元字符<代码>preg_replace(“/!/”、“.”、“你好,世界!!”)=>
你好,世界..
不是元字符<代码>preg_replace(“/!/”、“.”、“你好,世界!!”)=>
你好,世界..