我想在此网址字符串
上将\
替换为/
C:\wamp\www\chm-lib\sekhelp_out\HTML\AS_BUILD.htm
我已经尝试了this link,但没有变化,我遗失了一些东西,请在我错的地方纠正我。
答案 0 :(得分:2)
以下是使用PHP's string functions代替正则表达式的解决方案。
执行此操作:
System.setOut()
要获得此信息:
$url = 'C:\wamp\www\chm-lib\sekhelp_out\HTML\AS_BUILD.htm';
$pos = strrpos($url, '\\');
$url = substr_replace($url, '/', $pos, 1);
echo $url;
<强>解释强>
strrpos()
C:\wamp\www\chm-lib\sekhelp_out\HTML/AS_BUILD.htm
的位置
substr_replace()
\
醇>
注意强>
将/
代替'\\'
传递给'\'
作为第二个strrpos()
escapes非常重要。
另请注意,如果您愿意,可以将上面的代码缩短为一行,但我认为它更容易理解。无论如何,这里的代码是一行代码:
\
答案 1 :(得分:2)
您可以尝试将字符串作为一个数组进行爆炸,然后在弹出最后一部分后将其爆炸,然后用正斜杠将其连接回来。
$array = explode('\','C:\wamp\www\chm-lib\sekhelp_out\HTML\AS_BUILD.htm');
$last = array_pop($array);
$corrected = implode('\',$array) . '/' . $last;
答案 2 :(得分:0)
反斜杠转义很棘手:
preg_replace('/\\\\([^\\\\]*)$/', '/$1', "C:\\wamp\\www\\chm-lib\\sekhelp_out\\HTML\\AS_BUILD.htm")
您必须为文字字符串转义一次,对正则表达式转义一次,因此单个\
必须为\\\\
(1 x 2 x 2)
答案 3 :(得分:-1)
只需使用此
即可 str_replace('\\','/','C:\wamp\www\chm-lib\sekhelp_out\HTML\AS_BUILD.htm');