人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

正規表現で $にかこまれた 半角英数字のみを抽出したいと思っております。


$name$
$test2$
$test3$

$name$ を 名前 に置換

などです。

よろしく御願いします。

●質問者: kichitaka
●カテゴリ:ウェブ制作
✍キーワード:name 名前 抽出 数字 正規表現
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●27ポイント

環境や処理系によって微妙に異なる場合がありますので以下はあくまでも例としてお考え下さい。

Perl

$a = 'name$name$name';
print "$a\n";
$a =~ s/\$.*\$/\$名前\$/;
print "$a\n";

php

<?php
$a = 'name$name$name';
echo "$a\n";
$a = preg_replace("/\$.*\$/","\$名前\$",$a);
echo "$a\n";
?>

URLはダミーです。

http://q.hatena.ne.jp/1221155184

◎質問者からの返答

ありがとうございます!


2 ● GoldenDawn
●27ポイント

1番の回答ではおかしな事になりそうな気がします。

<?php
$a = 'name$name$name$name$name';
echo "$a\n";
$a = preg_replace("/\\$.+?\\$/", "名前", $a) ;
echo "$a\n";
?>

http://q.hatena.ne.jp

◎質問者からの返答

ありがとうございます。$name$の中身を正規表現で大文字小文字数字で構成されたもの。としたいのですがどうすればよいでしょうか?特定の物ではなく、$[A=Za-z0-9]$ のようなイメージです。


3 ● Mars
●26ポイント

Perl例です。

Perlだと置換対象に関数を指定して返値で置換できますので、色々置換するとき便利。

$str='abc$name$def$test1$ghi$***jkl$test2$';

$str =~ s/\$(\w+?)\$/func($1)/eg;
# \w は [_a-zA-Z0-9]と同じ、「 _ 」もNGならちと違う。

sub func{
my $key = shift;
my $ret;
if($key eq 'name') {
$ret = '名前';
} elsif($key =~ /^test(\d?)$/) {
$ret = 'テスト'.$1;
}
return $ret;
}

http://www.rfs.jp/sb/perl/02/09.html

◎質問者からの返答

ありがとうございます

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ