1

以下のように多くの追加スラッシュを削除する方法または機能はありますか

 \\\\\\\"Oracle DBA\\\\\\\"

stripslashes() を使用すると、スラッシュが 1 つだけ削除されます。

preg_replace を使用する必要がありますか? このような

preg_replace(/^\\(.*)/,"",$subject);

この作品で?

4

3 に答える 3

2

本当にバックスラッシュを置き換えたいだけなら、必要なのは次のとおりです。

$str = "\\\\\\\"Oracle DBA\\\\\\\"";
$str = str_replace("\\", "", $str);

スラッシュも削除する場合:

$str = str_replace(array("\\", "/"), "", $str);

ただし、 @therefromhere は良い点を示しています。すべてのスラッシュを削除すると、エスケープが壊れる可能性があります。

その場合、否定的な先読みがうまくいくかもしれません:

$str = preg_replace("/\\\(?!\")/", "", $str);

`\"Oracle DBA\" という結果になるはずです

編集:ウープシーを作りました。x2

于 2012-07-22T02:18:11.493 に答える
0

これを行うために正規表現は必要ありません。これを使用するだけです:

$string = str_replace(array('/', '\\'), '', $string);
于 2012-07-22T02:17:50.527 に答える
0

削除する必要があるエスケープのレベル数がわかっている場合は、文字列をstripslashes複数回実行するだけです。

そうしないと、これを完全に正しく行うことができるかどうかわかりません。すべてのスラッシュを削除できますが、明らかにそこにあるはずのスラッシュを壊してしまいます。

于 2012-07-22T02:18:42.123 に答える