いつもお世話になっております。
rubyで分からないことがあります。
ご存知の方がおられましたら、ご教授お願い致します。
【質問】
以下の文字列があるとします。
(文字列)
<!-- Advertiser 'XXX', Include user in segment 'test' - AAA -->\n<img src=\"BBB\" width=\"1\" height=\"1\" />\n<!-- End of segment tag -->\n<!-- Advertiser 'XXX', Exclude user from segment 'test' - AAA -->\n<img src=\"CCC\" width=\"1\" height=\"1\" />\n<!-- End of segment tag -->
この文字列を以下の様に変数1、変数2に入れたいのですが、
どのようにプログラムを記述すればよいでしょうか?
(変数1の内容)
<!-- Advertiser 'XXX', Include user in segment 'test' - AAA -->\n<img src=\"BBB\" width=\"1\" height=\"1\" />\n<!-- End of segment tag -->
(変数2の内容)
<!-- Advertiser 'XXX', Exclude user from segment 'test' - AAA -->\n<img src=\"CCC\" width=\"1\" height=\"1\" />\n<!-- End of segment tag -->
No.1
- 回答日時:
仕様がよくわかりませんが、
a , b = str.split(/\n(?=\<!\-\-\s+Advertiser)/)
p a
p b
もっと厳格に開始と終了タグをチェックするとそれなりの処理が必要になります。
この回答への補足
ご回答ありがとうございます。
実際にプログラムに入れたら出来ました。
申し訳ありませんが、split()の記述でわからないところがありますので、
教えてください。
str.split(/\n(?=\<!\-\-\s+Advertiser)/の
\n(?=\<!\-\-\s+Advertiser)部分のどのような処理を行っているのでしょうか?
基本的なことで大変申し訳ございませんが、
ご教授頂けましたら幸いです。
No.2ベストアンサー
- 回答日時:
※申し訳ありません。
余計なエスケープが含まれていましたので削除しました。a , b = str.split(/\n(?=<!--\s+Advertiser)/)
(?= )は正規表現の先読みという機能です。
\nの後に <!-- Advertiser という文字列が続く「位置」にマッチします。
位置というのがポイントです。<!-- Advertiser自信を含めてしまうと、
splitした際に<!-- Advertiserが消えてしまいます。
【先読み有りの場合】
\n <!-- Advertiser
↑↑
「\n」と「\nと<!-- Advertiserとの間の位置」にマッチし、
<!-- Advertiser 自身は含まれません。
【先読み無しの場合】
\n<!-- Advertiser
↑↑↑↑↑↑↑↑
「\n<!--\s+Advertiser」にマッチし、<!-- Advertiserも含まれてしまう。
この2つの動きを比べてみると詳細がわかると思います。
a , b = str.split(/\n<!--\s+Advertiser/) #先読み無し
a , b = str.split(/\n(?=<!--\s+Advertiser)/)#先読み有り。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- PHP PHP echo バックスラッシュの使い方 img要素 2 2023/01/08 22:46
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS imgとpを縦・横に中央揃えする 1 2023/01/17 11:30
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA Like演算子 パターン...
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
エクセルへのデータの貼付時に...
-
配列の値を置換するにはどうす...
-
VisualStudio2022でC言語プログ...
-
Excel-vba 文字列と変数を...
-
EXCEL/VBA 変数の値をクリップ...
-
初心者が簡単なPowerShellスク...
-
VBAで配列のNULL判定
-
C言語 列挙型(enum型)変数について
-
processing エラーで、 "cannot...
-
excelの、ある数式内の{}の意...
-
Nullってどういう意味ですか?
-
テキストボックスの値を変数に...
-
プログラミングについての質問...
-
umu *= 2;てどんな意味があるの...
-
[VBS]変数を定数に変換する方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現で、英数記号を含むパ...
-
BNFの書き方を教えてください
-
EXCEL VBA Like演算子 パターン...
-
C言語 exitの使い方
-
VBAでダブルコーテーション入り...
-
フォームを開くときに、コンボ...
-
エラーの意味は? Lvalue req...
-
Excel-vba 文字列と変数を...
-
excelの、ある数式内の{}の意...
-
VisualStudio2022でC言語プログ...
-
数字の位ごとの値を表示するプ...
-
C言語 列挙型(enum型)変数について
-
EXCEL/VBA 変数の値をクリップ...
-
配列の値を置換するにはどうす...
-
整数xxxが大き過ぎますというエ...
-
VB6.0-整数と余りを求める
-
テキストボックスの値を変数に...
-
プログラミングについての質問...
-
[VBS]変数を定数に変換する方法...
-
Variant型で宣言してるのにEmpt...
おすすめ情報