![]() |
|||
| | HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
|
HOME >> 正規表現2
■ 文字列の置換を行なう
正規表現の s/// 構文を使うと文字列の置換を行なうことが出来ます。 s/// 構文でも、m// 構文と同じように、修飾子を使って正規表現の設定を行なうことが出来ます。 → 修飾子について [書式] 検索対象の文字列 =~ s/検索文字/置き換える文字列/(修飾子);
# 「DEF」 を「ABC」に置換する場合
表示では、「ABCABCABCABC」と表示されます。$charactor = "ABCDEFABCDEF"; ← 検索対象の文字列をセット $charactor =~ s/DEF/ABC/g ; ← 文字列の変換 print "$charactor\n"; ここでは、修飾子「g」を設定して、マッチするすべての文字を置換しています。 修飾子「g」を設定しない場合は、最初にマッチした文字列のみ置換される為、 表示が「ABCABCABCDEF」となります。 [前後のスペースを削除する]
$str =~ s/^s+//g ; ← 文頭に来るスペースを削除
空の文字列に変換することで削除しています。
$str =~ s/s+$//g ; ← 文末に来るスペースを削除 [HTMLタグを無効化する(チャットや掲示板などで利用)]
$html =~ s/</</g ; ← 開始タグを無効化
タグをHTMLの特殊文字に変換することで無効化しています。
$html =~ s/>/>/g ; ← 終了タグを無効化 ■ 文字の変換や削除
文字の変換には tr/// 構文を使うことも出来ます。 この構文では、変換対象の文字のリストと変換後の文字のリストを作成して、 そのリストに照らし合わせて変換を行ないます。 tr/// 構文でも、修飾子を使って正規表現の設定を行なうことが出来ます。 tr/// での修飾子は、 → 修飾子について [書式] 検索対象の文字列 =~ tr/変換元の文字リスト/変換後の文字リスト/(修飾子); 例えば、数字の1〜9までをアルファベットのA〜Iに変換する場合は 「 $str =~ tr/123456789/ABCDEFGHI/g; 」となります。 「 $str =~ tr/1-9/A-I/g; 」のように範囲演算子を使うことも出来ます。 [大文字を小文字に変換する]
$str =~ tr/A-Z/a-z/g;
[連続した同じ文字を1文字に圧縮する]
$str = 'goood';
変数 $str は「god」に圧縮されます。
$str =~ tr/A-Za-z//gs; [英数字以外を除去]
$str =~ tr/0-9A-Za-z//g;
|
|||||||||||||||||||||||||||||||||||||||