Php preg_替换冒号和反斜杠

Php preg_替换冒号和反斜杠,php,preg-replace,Php,Preg Replace,我正在努力实现以下目标: $subject = 'string://example.com/'; $search1 = ':'; $search2 = '/'; $replace = '_'; 期望输出: $string = string_example1.com_example.com_; 有没有办法通过preg_替换实现这一点 $string = preg_replace(':', $replace, array($subject)); 我知道这是不正确的,但我需要删除斜杠和冒号,

我正在努力实现以下目标:

$subject = 'string://example.com/';

$search1 = ':';
$search2 = '/';
$replace = '_';
期望输出:

$string = string_example1.com_example.com_;
有没有办法通过preg_替换实现这一点

$string =  preg_replace(':', $replace, array($subject));
我知道这是不正确的,但我需要删除斜杠和冒号,并用下划线替换,无论它们在哪里,只要用下划线替换即可


谢谢

如果您尝试替换一个特定的字符,
str\u-replace
对于字符数组,我认为
str\u-replace
会更方便

编辑

例如:

$subject= str_ireplace(array(':','/'),'_', $subject);

我想是这样的。

试试这个。在模式中使用分隔符:

preg_replace('/(:\/\/|/\{1})/', '_', $subject);
输入:

$subject = 'string://example.com/';

$string = str_replace('___', '_', preg_replace('/[:\/]/', '_', $subject));
输出:

string_example.com_
希望这有帮助

这就是我们要做的:

$subject = 'string://example.com/';
$string = preg_replace('~://|/~', '_', $subject);
echo $string,"\n";
输出:

string_example.com_

这是一个评论。或者给出一个例子。谢谢这个替换,但是我可以只替换一个下划线吗?现在它返回的结果是
string\uu example1.com\u example.com\uu
preg\u replace('/(:\/\/\/\/)/',“\u',$subject);请更新此项仅当
://
://
同时出现时才进行更改吗?请尝试此项:
preg\u replace('/(:\/\/\/\\/\{1})/','\\/',$subject)如果只有1个斜杠,则它会更改为“/”、“/”、“/”、“/”,preg\u replace(“/(:\/\/\/)/”、“\/”、$subject);冒着学究气的风险,你正在尝试替换前斜杠(或简单的斜杠),而不是向后斜杠,因为后斜杠会向后倾斜到行的开始处。值得一提的是,很多人都把它们搞混了,你的帖子标题可能会让更多人认为“/”是反斜杠。