1

私がやろうとしているのは、HTML を解析し、そこからデータを取得し、このデータを取得して、Javascript 文字列配列にフォーマットするスクリプトを Matlab で作成することです。HTML を取得して解析するのに問題はありませんがsprintf、バックスラッシュを含む文字列を印刷しようとすると問題が発生します。

基本的に、引用符を含む Javascript の文字列がある場合は、バックスラッシュでエスケープする必要があります。

var string1 = "Here is a \"string\" example";

次のように Matlab でこれを実行しようとすると、正しく印刷されません。

>> A = sprintf('Here is a \"string\" example')
A =
    Here is a "string" example

これは有効な Javascript 文字列ではありません。sprintfしたがって、基本的には適切な Javascript 文字列を返したいと考えています。助言がありますか?

\\"and\\\"といくつかの同様の組み合わせを使用してみましたが、すべて役に立ちませんでした。

4

2 に答える 2

1

Matlab は、その sprintf 関数の C プログラミング言語である Kernighan、BW、および DM Ritchie のリファレンスを使用しています。リファレンスによると、sprintf の定義方法では、文字のデフォルトの制御意味を克服する方法としてエスケープ文字を使用しています。

のような組み合わせを提案しないように依頼しましたが、

\"

\\\"

\" を \\" に手動で置き換える必要がなく、コード自体がこのアクションを実行する実行可能なソリューションを次に示します。

a = "Here is a \"string\" example";
d = regexprep(a,"\"","\\\"");
sprintf(d);
于 2012-10-13T06:45:41.953 に答える
0

試す

sprintf('Here is a \\"string\\" example.') 

私のマシンでは、これは出力します

Here is a \"string\" example. 
于 2012-10-13T08:51:32.253 に答える