###前提・実現したいこと
1行目の入力のスペースで区切られた文字列、タグA、タグBで囲まれた文字列を2行目の入力の文字列Sから抽出して出力します。
タグAを開始タグ、タグBを終了タグとして考えます。
それぞれのタグはタグ開始文字'<'とタグ終了文字'>'で囲まれた半角英数文字列です。開始タグと終了タグは同じ文字列になる事はありません。
文字列Sは半角英数と<>のみです。
文字列を抽出する手順は以下の通りです。
① 文字列SからタグAを(左から)右に向かって検索する
② ①で検索したタグA出現位置からタグBを(左から)右に向かって検索する
③ 検索したタグA,Bに囲まれている文字列を抽出し出力する。また、抽出文字の長さが、0の場合、<blank>と出力する
④ タグBの出現位置から再度タグAを検索し、存在すればタグA出現位置からタグBを検索し③の処理を行い、存在しなければ処理を終了する
⑤ ④を繰り返す
入力例:
<Banana> <Cupcake>
ApplePie<Banana>Bread<Cupcake>Apple<Banana><Cupcake>
出力例:
Bread
<blank>
###該当のソースコード
ruby
1input = gets.split 2a = input[0] 3b = input[1] 4 5line = gets 6str = line.scan(/a(\w+)b/) 7 8
このようにscanメソッドを使えばタグで囲まれた文字列を配列の形で得られる…と考えてみたのですが、方向性が間違ってるのかここで行き詰っています。解決方法がございましたらご助言いただけると嬉しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。