2017-02-06 5 views
0
私は this answerで説明した区切り文字を使用していた

preg_replaceが期待どおりに動作していないため、バックスラッシュを置き換えますか?

php cli

私が代わるWebプロジェクトの機能を使用しています:

ここ

私は、問題を示すために使用しているシェルPHPはありますパス、例えばのための名前空間の構文は:

0123:

\org\project\namespace\access 

に変換する必要があります

警告::にpreg_replace():いいえ終了区切り文字 '/' で見つかった...

私がいない

しかし、私は多くの方法を試してみましたが、いくつかは、次の警告を投げました見せたい正規表現としてこれを使用するときに

上記の警告が表示さ:/\\/

エクストラ:(画像をご覧ください)、それは悪いエンコードされた文字列を示し、なぜ?

更新:なぜthis PHP Live Regexとして機能しませんか?

答えて

1
  1. あなたは\\リテラルPHPの文字列に\(単一のバックスラッシュ)を生成しますので、"/\\\\/"の代わり"/\\/"を使用する必要があります。

    なぜあなたは、このような単純なケースのための正規表現を使用しているhttp://php.net/manual/en/language.types.string.php

  2. を参照してください? str_replace()またはstrtr()に固執:

+0

なぜ(http://www.phpliveregex.com/p/iVo)[phpliveregexページで]あなたの '/ \\\\ /'動作しませんか? –

+0

そのページはリクエストフォームからパターンを取得するためです。 PHPコードでは文字列リテラルではありません。 – ShiraNai7

関連する問題