問題タブ [backslash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
9182 参照

javascript - 特定の文字が続くものを除いて、単一のバックスラッシュを置き換える正規表現

\ / または } のいずれかの文字が後に続かない場合、文字列からバックスラッシュを削除する正規表現があります。

この文字列を次のように変換する必要があります。

これに:

しかし、問題は、バックスラッシュが進むにつれて、それぞれのバックスラッシュを処理していることです。したがって、最初のバックスラッシュを削除し、別のバックスラッシュが続くため 2 番目のバックスラッシュを無視するという規則に従います。しかし、3 つ目に到達すると、別のものが続かないため、それを削除します。

私の現在のコードは次のようになります。str.replace(/\\(?!\\|\/|\})/g,"")

しかし、結果の文字列は次のようになります。foobar\batz\/hi

3番目のバックスラッシュをスキップするにはどうすればよいですか? それとも、ある種の明示的な否定的な検索と置換タイプのことを行う場合ですか? 例えば。'\' を置換しますが、'\\'、'\/' または '\}' は置換しませんか?

助けてください!:)

編集

申し訳ありませんが、説明する必要がありました-私はjavascriptを使用しているため、否定的な後読みはできないと思います...

0 投票する
2 に答える
1599 参照

php - MySQLの更新/挿入はUnicodeエントリのバックスラッシュを削除します

Unicodeを\uとしてエンコードするJSONデータを使用してSQLフィールドを挿入/更新しようとしていますが、それが削除されています。

ただし、次のようにデータベースに保存されています。

数え切れないほどのpreg_replaceメソッドとstr_replaceメソッドを試しましたが、どれも機能しません。これについて私にできることはありますか?それは私を怒らせています。

ありがとう!

0 投票する
1 に答える
1345 参照

java - json でスラッシュ文字を返す、応答コード 500

HTTP 経由で JSONObject 経由でメッセージを送信しようとしています。

メッセージは次のようなものです:

予期される受信メッセージ:

ここで問題は、http サーバーが応答コード 500 を返すことです。9 行目で例外が発生します。注: 問題の領域は、文字列部分 \KB で、文字列にこのバック スラッシュが含まれていない場合、すべて問題ありません。

私が試した:

例外は発生しませんでしたが、受信したメッセージは次のとおりです。

JSONObject.escape(message)も機能しませんでした。

0 投票する
2 に答える
1515 参照

json - JSON 配列は、バックスラッシュを含む文字列を送信できません

JSONArray 経由でメッセージを送信していますが、応答コード 500 が返されます。理由は、メッセージ文字列に文字「\」が含まれているためです。

文字列 s="りんご $54\KG"

0 投票する
3 に答える
3207 参照

javascript - バックスラッシュがまだ存在しない場合、特定の文字にバックスラッシュを追加するための JavaScript 正規表現のヘルプ

私は別の Javascript 正規表現の難問を抱えています... (これが少し長文である場合はお詫びします - 説明するのは難しいです!)

文字列をポップアップ ウィンドウに送信するスクリプトがあります (すべての文字は送信時にエンコードされるため、すべてのバックスラッシュが保持されます)。ポップアップには、いくつかのテキスト入力ボックスと、すべての入力ボックスの内容を表示する「概要」スパンがあり、キーアップが検出されるたびに更新されます。次に、ユーザーが終了したら、ボタンをクリックして、更新された要約文字列をオープナーに送り返します。

要件は、バックスラッシュが次の文字の前に自動的に追加されることです: \ / }。したがって、ユーザーが自分でこれを行う必要はありません。現在、入力ボックスのバックスラッシュを取り除くコードがありますが、要約では必要に応じてバックスラッシュが追加されています。

例えば。この文字列がポップアップに送信された場合:foobar\\batz\/hi 要約では次のfoobar\\batz\/hiようになり、入力ボックスでは次のようになります: foobar\batz/hi。次に、入力ボックスで次のように文字列を編集すると: foobar\batz/hiya、要約では次のようになります: foobar\\batz\/hiya。これまでのところは順調ですが、入力ボックスにこれを入力しようとすると: foobar\\batz/hiya、要約では次のようになります: foobar\\\batz\/hiya。次のようになります。foobar\\\\batz\/hiya

これは既存のコード (すべての 'kepup' で実行される) によるものです。\ / or }基本的に、文字列を確認し、まだ存在しない場合はバックスラッシュを追加するには、正規表現が必要です。これには、既存のバックスラッシュをチェックするための否定後読みが必要です (ただし、javascript は否定後読みを実行できません)。最初に (カスタム関数を使用して) 文字列を反転し、否定的な先読みを行ってから、次のように文字列を再び反転することで、これをクラックしたと思いました。

しかし、今では問題がどこにあるのかがわかります。2 つのバックスラッシュの最初 (または反転されているため 2 つ目) に遭遇すると、余分なバックスラッシュが追加されます。しかし、2 番目のバックスラッシュにはこの最初のバックスラッシュが既にあるため、追加されません。

また、文字列が反転されるたびにメモリの割り当てについても懸念があります。これは、javascript 文字列が不変であることを学んだためです。文字列が反転されるたびに、より多くのメモリが割り当てられるという不幸な影響があると思います。キーストロークごとにこれを行うと (入力ボックスが変更されるたびに要約行を更新するためにこれを行う必要があるため)、いくつかの問題が発生する可能性があります (...?)。

これを行う他の方法はありますか?できれば、正規表現だけで、元に戻すことはありません...

要約すると、要件は、これらの文字のいずれかを文字列で検索し、\ / }それらの前に「エスケープ」バックスラッシュを追加する正規表現置換を作成することです (エスケープ バックスラッシュがまだ存在しない場合)。したがって、複数のバックスラッシュが連続して発生したときに、それぞれをエスケープするためのインテリジェンスが必要です (実際の入力ボックスを更新するのではなく、要約を更新するために使用する変数を更新していることに注意してください)。

正規表現マスターの助けが必要です!

0 投票する
1 に答える
1002 参照

backslash - git Status で同じファイルが 2 回表示される - ただし、パスのスラッシュ スタイルが異なる

を実行するgit statusと、次のような変更リストが表示されます。

add次にcommitCustomizablePDFs/InvoiceAdapter.php を実行すると、(本来あるべき姿で) コミットされ、ステータス リストに表示されなくなります (良い) 。

ただし、ステータス リストにgit statusは引き続き表示 されます。deleted: "CustomizablePDFs\\Model/AlignContainer.php"そのファイル パスをgit rm使用すると、pathspec がどのファイルにも一致しなかったと言って失敗します。

このエントリをステータス リストから削除するにはどうすればよいですか?

ありがとう、
ベン

0 投票する
1 に答える
1113 参照

python - [Python]: コマンドでの二重バックスラッシュ

まとめ:

Pythonでpskill.exeコマンドを実行したいです。dos プロンプトで試してみました: C:\Users\JohanSA\Documents\EclipseWorkspace\ProdataATFBASE\src\resources\pskill.exe \localhost -t 11780 --> うまくいきました!

==> しかし、Python 経由で同じコマンドを実行したい。

prodataOSLib.executeCmd("pskill.exe -t 11780", True, True)

--> がんばれ!

今、コンピューター名を pskill コマンドに追加したい

prodataOSLib.executeCmd("pskill.exe \\localhost -t 11780", True, True)

-->うまくいかない

executeCmd-function にログインすると、次のようになります。

11-04-2011 13:35:15 [prodataoslib-executeCmd] - デバッグ: コマンドを実行中: C:\Users\JohanSA\Documents\EclipseWorkspace\ProdataATFBASE\src\resources\pskill.exe \localhost -t 11780

--> 問題は、「localhost」という単語の前にバックスラッシュが 1 つしかないことです --> しかし、「localhost」の前にこの 2 つのバックスラッシュを付けるにはどうすればよいですか?

誰でもこれで私を助けることができますか?

どうもありがとう!ヨハン

これは executeCmd 関数です。

0 投票する
4 に答える
8215 参照

mysql - MySQL でバックスラッシュを含むデータのみを選択する必要がある

ダブルエスケープされたデータベースのエントリを修正しようとしています。mysql_real_escape_string が使用されている間、magic_quotes がオンになっていると思います。二重エスケープにより、一部の検索結果が正しくない/見つからないことがありました。

私は magic_quotes をオフにして、バックスラッシュでエントリを検索し、それらを更新して二重エスケープを削除することを計画しています。問題は、バックスラッシュを含むエントリを検索するクエリを実行すると、常に結果が得られないことです。

ここで推奨されているように、「%\\\\%」を使用しています: http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like

すべてのタイトルを出力すると、それらの多くに不要なバックスラッシュが含まれているため、そこにあることがわかります。クエリでそれらを分離することはできないようです。

繰り返しますが、\ を含むエントリを返そうとしています。


編集: MySQL のバージョンは 5.0.92-community です。照合順序は latin1_swedish_ci です。文字セットは UTF-8 Unicode です

%\\% 動作しません。私はもう試した。mysql.com では正しくないと記載されています。

「\」を検索するには、「\\\\」と指定します。これは、バックスラッシュがパーサーによって 1 回削除され、パターン マッチが行われたときに再び削除されるためです。

0 投票する
1 に答える
95 参照

php - phpスラッシュ式

私はこのようなhtmlを持っています

<div> <fontcolor = "green"> ABC </ font> A'ssd "fsdf </ div>

上記を次のように変更する必要があります

<div> <fontcolor = \ "green \"> ABC </ font> A'ssd "fsdf </ div>

つまり、\ "はhtmlコンポーネントにのみ表示され、テキストデータには表示されません。

PHPでどのように?

0 投票する
1 に答える
189 参照

php - preg_match を介してメタ文字を含む変数を渡しますか?

これらの変数 (文字列) を preg_match に渡すのに 3 時間かかりました。私はすべてを試しました。preg_quote はそれらをさらに悪化させるだけです。

あなたはそう思うだろう