
$TEXT = "aaaaa「G123」";
$TEXT =~ s/(G123)(\d*)/<button name="NO" class="button" value="$2">G$2<\/button>\n/g;
print qq($TEXT);
現在これで、G123が入力されたら、ボタンにするというのなのですが、
これだと
$TEXT内は<aaaaa「G123」>
なので、
<aaaaa<button name="NO" class="button" value="$2">G123<\/button>」>
というように変換されます。
これを
aaaaa+G123
↓
<button name="NO" class="button" value="$2">aaaaa「G123」<\/button>
※aaaaaのとこはどんな文字でもいいように・・・
という風にしたいのですがどのようにすればいいのでしょうか?
No.4ベストアンサー
- 回答日時:
「G123が含むかつ<>で囲んだ中身」は「G123を含むかつ<>で囲んだ中身」ということかな. もしそうならそれ自体は
<.*G123.*>
のような正規表現で取れるからたとえば
s/<.*G123.*>/<button name="NO" class="button" value="$2">$&<\/button>/
とすれば (value のところの「$2 でいいの?」以外は) できるはず.
とはいえこれでも与えられる文字列との関係ではあいまいなところがあって, 少なくとも以下の文字列の場合にどうするかは明らかじゃないということに気を付けてください.
・"?????? <aaaaa<hogehoge「G123」> boo> ?????"
・"?????? <aaaaa「G123」<hogehoge「G123」> boo> ?????"
・"?????? <aaaaa<hogehoge><bbbb「G123」> boo> ?????"
ありがとうございました!
最後のですると、「boo>」
となってしまうのですね。
気をつけます!
やりたいことができました。
私の、よくわからない説明なのに
最後までお答えくださりありがとうございました;;
No.3
- 回答日時:
それでは文章があいまいなので「どうすればいいのか」がわからないです.
つまり,
$TEXT = "???????? aaaaa「G123」 ????????";
という文字列に対して
「Gが含まれていたらそこの箇所だけ(aaaaa「G123」)ボタンに変える」
と書かれているんですが, その「そこの箇所」と「『そこ』でない箇所」をどう区別すればいいのかがわからないです. 特に, 質問文に
「aaaaaのとこはどんな文字でもいいように」
と書いてあるので, どうして「aaaaa「G123」の部分だけをボタンに変える」のかが判断できないです. 「どんな文字でもいい」のなら, 「???????? aaaaa「G123」」をボタンに変えてもいいのではありませんか?
そう考えると「どんな文字でもいい」とはあっても本当に「どんな文字でもいい」わけではないはずなので, 何がよくて何がよくないのかを決めておく必要があります. 例えば「空白を含まない 1文字以上のアルファベットの列」だというなら, そのように明示しなければなりません.
あと余談ですけど「value="$2"」のところ, 本当に「$2」でいいですか?
なるほど・・・そういうことですか・・
では、
G123が含むかつ<>で囲んだ中身をボタンにするということは可能ですか?
?????? <aaaaa「G123」> ?????
↓
?????? <button name="NO" class="button" value="$2"><aaaaa「G123」><\/button> ?????
すみません
「$2」
色々調べたりしてるうちにこれが記載されていて、
そのまま使っています。。。
理解できておりません・・・
No.2
- 回答日時:
$TEXT
の内容が
aaaaa「G123」
であるときに, 本当に
<button name="NO" class="button" value="$2">aaaaa「G123」<\/button>
としたいのであれば, 結局のところ前後に
<button name="NO" class="button" value="$2">
と
<\/button>
をつければいいだけなのだから s ではなく文字列の連結を使って
q(<button name="NO" class="button" value="$2">) . $TEXT . q(<\/button>)
とでもした方が簡単だと思うよ.
すみません・・・説明が不足しすぎです・・・
たしかに、貴殿がお答えくださった、連結でボタンを作るだけなら簡単にできるのですが;;
$TEXT = "aaaaa「G123」"
だけではなく、
$TEXT = "???????? aaaaa「G123」 ????????";
と前後にさらに文があり
Gが含まれていたらそこの箇所だけ(aaaaa「G123」)
ボタンに変えるというようなことをしたかったのです・・・
それで、初めではG123が含まれてるなおかつ「<>」これで、囲った部分という
説明をしたかったのですが、「<>」これなしでもできる方法があるのかな?
と思い抜いた質問となりました・・・。
No.1
- 回答日時:
なんか, いろいろおかしい.
$TEXT = "aaaaa「G123」";
としたなら
$TEXT
は
<aaaaa「G123」>
ではなく
aaaaa「G123」
となるはずです. あと, s で置換するときに $2 が置き換わるので置換結果も
<aaaaa<button name="NO" class="button" value="$2">G123<\/button>」>
とはならないはずです.
というか, 本当に
aaaaa「G123」
という文字列を
<button name="NO" class="button" value="$2">aaaaa「G123」<\/button>
のようにしたいなら「s で置換する」のがすでに間違ってるような気がする....
sではないのですか・・・
どのようにすれば・・・?;;
また「<>」これはいりません・・・
初め「<>」これで囲った中身と質問しようと思ったので、
消すのを忘れてました・・・すみません・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのプログラミング 部分入れ...
-
Perlでファイルの末尾から指定...
-
テキストファイルで提出とは?
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
Perlのエラーについてご教授く...
-
perlをバージョンアップしたら...
-
Perlで時間の計算
-
Wallpaper Engineでおすすめの...
-
Perl言語について。
-
perlで2次元配列をサブルーチ...
-
Strawberry Perl for Windows ...
-
#!/usr/bin/perlで書きだしたCG...
-
perl の open について教えてく...
-
INDIRECT 横に再度抽出したい
-
アルファベットに付いて質問し...
-
openした後、closeしないでプロ...
-
画像が表示でnull; this.src
-
VBA変数をFunction.VLookupの戻...
-
perlのflock関数でロックをかけ...
-
Perl の外部モジュールの利用方法
-
TeraPadエディターの操作方法に...
-
bashスクリプト
-
perlの構文でカンマの意味が分...
おすすめ情報