$hoge = ’
<select name="a">
<option value="A" selected>■</option>
<option value="B">★</option>
<option value="C">▲</option>
</select>
<select name="b">
<option value="A">■</option>
<option value="B">★</option>
<option value="C" selected>▲</option>
</select>
’;
となっている場合、
『selected』が付いているoptionにマッチさせ、
そのvalue値【A】や【C】を$hoge1や$hoge2へ代入したいのですが、正規表現はどのようになるのでしょうか?
$hoge =~ /value="?([^"]+)"? selected/g
$hoge1 = $1;
$hoge2 = $2;
↑これでは、ダメでした。
御教授 お願い致しますm( __ __ )m
No.3
- 回答日時:
$hogeの内容がサンプルのようなフォーマットでしたら
($hoge1,$hoge2) = $hoge =~ /value="([^"]+)" selected/g;
でよいとおもいます。
もうすこし一般的に対応させるならこんな感じですかね
$cunt = 0;
while ($hoge =~ /<option\s+value\s*=\s*(?:"([^"]*?)"|(\S+))\s*selected\s*>/ig) {
$cunt++;
${"hoge$cunt"} = defined $1 ? $1 : $2;
}
No.1
- 回答日時:
全ての行をまとめて処理するのではなく、一行単位に処理すれば良いと思いますよ。
$hoge =~ m/^<option +value=\"(.+)\" +selected>/;
$hoge1 = $1;
で、$hoge1 にvalueの値が入ると思います。
後は、指定されているHTMLの文をループで引き渡せば良いと思います。
$html =<< "EOH";
<select name="a">
<option value="A" selected>■</option>
<option value="B">★</option>
<option value="C">▲</option>
</select>
<select name="b">
<option value="A">■</option>
<option value="B">★</option>
<option value="C" selected>▲</option>
</select>
EOH
@html = split(m/\n/, $html);
@hoge = ();
foreach $hoge (@home) {
if ($hoge =~ m/^<option +value=\"(.+)\" +selected>/) {
push(@hoge, $1);
}
}
foreach (@hoge) {
print $_. "\n";
}
こんな感じかな。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- JavaScript 1度きりではなく、繰り返し、挙動が変わるようにしていただきたいです。 1 2022/07/03 15:50
- JavaScript jsでは、'で区切った部分を改行することはできない。〇か×か。 1 2022/06/26 19:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
Windows10においての『Perl』の...
-
アルファベットに付いて質問し...
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
VBA変数をFunction.VLookupの戻...
-
Unity5について質問です。 私は...
-
perlのflock関数でロックをかけ...
-
ラズベリーパイ初心者です。 ラ...
-
Perlのエラーについてご教授く...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
perlでリテラル値はメモリにど...
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
-
perlのプログラミング 部分入れ...
-
Blenderについて
-
Perlで特定文字列から特定文字...
-
TeraPadエディターの操作方法に...
-
Perl 数値にスラッシュを入れる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INDIRECT 横に再度抽出したい
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
Perlで特定文字列から特定文字...
-
Wallpaper Engineでおすすめの...
-
Perlのエラーについてご教授く...
-
アルファベットに付いて質問し...
-
Strawberry Perl for Windows ...
-
bashスクリプト
-
テキストファイルで提出とは?
-
Perl の外部モジュールの利用方法
-
#!/usr/bin/perlで書きだしたCG...
-
Windows10においての『Perl』の...
-
perlのflock関数でロックをかけ...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlのrequireの動き方について...
-
画像が表示でnull; this.src
-
ターミナルで特定の文字と文字...
-
英数文字列のうちの数値を4桁に...
おすすめ情報