質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

正規表現

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

Q&A

解決済

2回答

8925閲覧

文字列の中のダブルクォーテーション内の文字を削除したい

ankored

総合スコア25

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

正規表現

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

0グッド

0クリップ

投稿2017/11/18 09:31

文字列の中で「‟”」で囲われた文字をslice!で削除したいのですが、
下記のように、
slice!(/‟.?”/)やslice!(/\‟.?\”/)で試してみましたが
文字列の最初と最後の"にマッチしてしまうようでうまくいきません。

Ruby

12.4.0 :001 > text = "test‟ダブルクォーテーションの中”外" 2 => "test‟ダブルクォーテーションの中”外" 32.4.0 :002 > text2 = "test‟ダブルクォーテーションの中”外" 4 => "test‟ダブルクォーテーションの中”外" 52.4.0 :003 > p text.slice!(/‟.*?”/) 6"‟ダブルクォーテーションの中”" 7 => "‟ダブルクォーテーションの中”" 82.4.0 :004 > p text2.slice!(/\‟.*?\”/) 9"‟ダブルクォーテーションの中”" 10 => "‟ダブルクォーテーションの中”"

よいやり方をご教授いただけると幸いです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

String#slice!は、元の文字列が「指定されたものを引き抜いた文字列」に変化して、返り値は引き抜いた方の文字列になります。

ruby

1text = "test‟ダブルクォーテーションの中”外" 2text.slice!(/‟.*?”/) 3p text # 抜けた方だけ出てくる

あと、slice!は引き抜きを1個しか行いません。複数個ある場合にはgsubなどで空文字列に置き換えたほうがいいでしょう。

text.gsub(/‟.*?”/, '')

投稿2017/11/18 09:40

編集2017/11/18 09:44
maisumakun

総合スコア145183

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

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

ankored

2017/11/18 09:51

ありがとうございます! 式に直接pをあてると返り値が出ていただけで、文字列削除はちゃんとできていたのですね。 早とちりで失礼しました。 また、gsubのほうも教えていただきありがとうございました。
guest

0

括られた文字列」というのは 言い換えると
から始まって、 以外の文字を含む文字列」と考えることができると思います

正規表現では以下のように書くことができます(たぶん他にも書き方があるでしょう)

ruby

1text = "test‟ダブルクォーテーションの中”外" 2quoted_words = text.slice!(/‟[^”]+”/) 3puts text, quoted_words 4# => 5# test外 6# ‟ダブルクォーテーションの中”

問題解決手段として正規表現を用いる場合、トライ・アンド・エラーを繰り返すのは手間がかかります

たとえば Rubular などのWeb サービスを利用して、せめてもの省力化ができるといいかもしれません

何か参考になれば幸いです

Link

投稿2017/11/18 09:53

gouf

総合スコア2321

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

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

ankored

2017/11/18 10:09

ありがとうございます。 正規表現は慣れていないため直観的にわかりにくく、少しずつ調べながら書いています。 このサイトは便利ですね。教えていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問