HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
1013
みやエスケープ文字(円マーク)の置換方法3解決


みや

リンク

2011/10/13(Thu) 11:38:53|NO.42329

HSPからデータベース(postgreSQL)へinsertする構文を作っています。
その時に、「\」だとエスケープ文字と判断されてしまうので、
構文に「\」があれば「\\」へ置換する様にしたいのですがうまくいきません。。


#include "mod_regexp.as" moji = "aaa\aaa" mes moji mes replace(moji, "\\", "\\\\\\\\")

特別な文字なので置換対象にならないのでしょうか。
それとも私の書き方が悪いのでしょうか。



この記事に返信する


inovia

リンク

2011/10/13(Thu) 12:47:40|NO.42331


#include "mod_regexp.as" moji = "aaa\\aaa" mes moji mes replace(moji, "\\\\", "\\\\")

↓結果
aaa\aaa
aaa\\aaa


HSPでは\は特殊文字で\\と書く必要があります。
"aaa\aaa" から "aaa\\aaa" にしてあります。

さらに F1ヘルプの match の項目にもありますが、
>\ と一致するパターン表記は "\\\\" となります。
とありますので、replace の 第2パラを "\\\\" にしてあります。
第3パラは通常のHSPの特殊文字で表すので "\\\\" にしてあります。



みや

リンク

2011/10/13(Thu) 13:12:21|NO.42332

inovia様
ありがとうございます!

>\ と一致するパターン表記は "\\\\" となります。
この説明は見落としていました。。
(replaceの説明文のみ見ていました・・・)

やっと前に進めます。
本当にありがとうございます!!



TTRUKO

リンク

2011/10/13(Thu) 13:17:59|NO.42333

replaceで「\」という文字を置換対象にしたい場合は「\\」という文字列を指定する必要があるので
"\\\\"(=文字列の「\\」)と書く必要があるんですよね

私も以前「\\」という文字列を「\」に置換するような処理を作ったことがあるんですけども
置換指定が"\\\\\\\\"というすごく\だらけなことにまりました^^;



ONION software Copyright 1997-2023(c) All rights reserved.