🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

エスケープ処理

エスケープ処理とは、一連の文字や一文字に対して、一定の規則に従って別の意味を適用する処理過程です。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

1回答

8764閲覧

GAS(Google Apps Script)で文字列に含まれるエスケープ文字の削除方法

RWW

総合スコア13

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

エスケープ処理

エスケープ処理とは、一連の文字や一文字に対して、一定の規則に従って別の意味を適用する処理過程です。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2019/12/01 06:02

編集2019/12/01 07:16

CSVから取得したセル内にエスケープ文字である「(バックスラッシュ) 」が含まれている場合にその「(バックスラッシュ) 」を削除したいのですが、やり方がわかりません。

恐らくGAS内ではなく、CSV内で何らかしらの方法で直接削除した文字列をGASにインポートすると問題ないのかもしれませんがあくまでもGASで全工程を完結させたいめ質問させていただきます。

GAS

1str = "\10,000";

このような文字列です。

最終的にはこの文字列から数値のみを抽出したいのですが、その過程でつまづいております。

私がGAS初心者であるため、初歩的な質問になっているかもしれませんが
削除の可否も含めてご教授いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/12/01 15:45

質問1: str = "\10,000"; は、どういう手段であなたが目にしたものですか? 質問2: str = "\10,000"; は、プログラムの一部ですか?それともこの見たままが、データの一部ですか?
RWW

2019/12/02 01:12

ご質問ありがとうございます。 質問1→ある管理画面から一覧データをCSV出力した際の金額部分の値が「\10,000」のような形になっております。 質問2→わかりづらく申し訳ございません。CSV内のデータの一部です。 宜しくお願い致します。
otn

2019/12/02 08:32

質問が通じてないようですが、 質問3: あなたは、 str = "\10,000"; という表現を目にしたわけじゃなくて、 \10,000 という表現だけを目にして、それを str = "\10,000"; のように加工して質問に書いたということでしょうか? 質問4: そのCSVデータというのは、何かのソフトの画面で見たのですか? あるいは、ファイルの中にあるのを見たのですか?その場合はどう言う手段でファイルの中を見ましたか? 質問5: そのCSVデータを一切の細工なく、コピペしてください。問題のデータが含まれる1行でいいです。
papinianus

2019/12/10 14:31

csvを読み出すところのコードを載せてください。数値を抜き出すところを加筆修正しますので。
guest

回答1

0

バックスラッシュ文字(\)自体は GAS(JavaScript) では\と2つ重ねて表記します。
回答書いてから気付きましたが、コードタグの内外でバックスラッシュの表示が違うみたいです。\はバックスラッシュと読み替えてください。

そのため取り除くだけなら、

JavaScript

1var str = "\10,000"; // ← \10,000 2 3var result = str.replace("\", "");

でいいはずです。

投稿2019/12/01 06:44

編集2019/12/01 06:48
draq

総合スコア2577

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RWW

2019/12/01 07:16

ご回答いただきありがとうございます。 私の質問の仕方が悪かったようです。 バックスラッシュが含まれる文字列は自分で宣言するわけではなく、CSVから取得したセル内の文字列にすでに含まれてしまっているためご教授いただいたように「"\10,000"」とすることができません。 素人ながら、取得した「"\10,000"」という文字列の頭に「"\"」という文字列を追加してご回答していただいたように削除すればいいのでは?と思い試しましたがうまくいきませんでした。 私の理解不足で見当違いのご回答をしていたら申し訳ございません。 他にいい方法がございましたらご教授ください。
RWW

2019/12/01 07:19

【追記】このCSVは自分で作っているわけではなく、外部のWEBサイトからスクレイピングでダウンロードしたものなのでCSVのセル内の文字列も事前に都合のいいような形で入力できません。
draq

2019/12/01 09:01 編集

同じことです。プログラム外部から「\10,000」という文字列を渡された場合の文字列としての表現が「\10,000」となるということです。console.log("\10,000") でコンソールへ出力されるのは、「\10,000」ではなく、「\10,000」となります。 console.log("\".length) とかして見るのもいいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問