

|
|
HOME >> アルファベットで関数を検索 >> substr
substr [部分文字列を取り出す・置換する]
[関数の使い方・書式]
○ = substr ☆, ★[, □[, ■]]
| ☆: |
(スカラー) |
対象文字列(を返す式)。 |
| ★: |
(スカラー) |
部分文字列を取り出す最初の位置(を返す式)。 ・・・ オフセット位置。 |
| □: |
(スカラー) |
取り出す部分文字列の長さ(返す式)。 |
| ■: |
(スカラー) |
取り出した部分に置き換える文字列(を返す式)。 |
| ○: |
(スカラー) |
取り出された部分文字列。 |
[関数の機能]
対象文字列☆から部分文字列を取り出して返します。
対象文字列☆の先頭を0年、先頭から数えて★分進んだ位置から□の長さ分を部分文字列として取り出します。
オフセット値★がマイナス値の場合、文字列の末尾を -1 とし、末尾から先頭に向かって戻った位置が開始位置となります。
マイナスで示す位置が文字列の先頭を越えてしまった場合は、文字列の先頭が開始位置になります。
長さ□が省略されると末尾までが取り出されます。
□がマイナス値の場合、末尾の文字を -1 とし、末尾からその値分戻った位置までの文字が取り除かれて取り出されます。
オフセットとの関係から、□で指定した部分が開始位置や対象文字列☆の先頭より前の部分、
あるいは、末尾よりも後ろの部分だけを示す場合は、空文字列が返されます。
substr は左辺値として代入することが出来ます。
この場合、取り出された部分文字列が新に代入する文字列で置き換える形となります。
代入する文字列が取り出された部分文字列より長ければ文字列は伸び、その逆の場合、文字列は縮むことになります。
5.005 からは■を使ってこの置換を記述する事ができるようになりました。
[書式の例]
1. $substring = sbstr($string, $offset);
2. $substring = sbstr($string, $offset, $length);
3. sbstr($string, $offset, $length) = $replace;
4. $substring = sbstr($string, $offset, $length, $replace);
サンプルソース
● 郵便番号を ― 付きに変換
while ( $line = ) {
if ( ($zip) = $line =~ /[0-9]{7}/) { # [0-9] は \d でも可
$main = substr($zip, 0, 3);
$detail = substr($zip, 3, 4);
print "〒 $main-$detail\n";
}
}
|