preg_replace 替换冒号和反斜杠

preg_replace replace colon and back slash

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

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

$search1 = ':';
$search2 = '/';
$replace = '_';

期望的输出:

$string = string_example1.com_example.com_;

有什么方法可以用 preg_replace 实现吗?

$string =  preg_replace(':', $replace, array($subject));

我知道这是不正确的,但我需要删除斜杠和冒号并用下划线替换,无论它们在哪里,都只用下划线替换它

谢谢

我认为 str_replace 会更方便,如果您要替换特定字符,str_ireplace 用于字符数组

编辑

示例:

$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_