PowerPoint プレゼンテーション - RUNNING ON NESSEIKEN.INFO

あるクラスの受講生100人に、「メールで年齢を送って下
さい」とお願いしたところ、次のようなリストが得られた
[email protected] 私は19歳です。
[email protected] 20才
[email protected] 年齢は21です。
[email protected] 19さいです。
[email protected] 山本太郎20才。
[email protected] 19
[email protected] 年齢は19です。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
このリストを年齢別に集計したいのだが、
どうすればいいだろうか?
まず、空白をタブに置換して、エクセルにコピーしてから、並べ替
えようとしても、年齢の位置がまちまちなので、うまく行かない。
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・
19
19さいです。
20才
山本太郎20才。
私は19歳です。
年齢は19です。
年齢は21です。
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
もしも、右側の列から、数字だけを切り出して、新しい列を作
ることができれば、年齢で並べ替えることができるだろう。
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・
19
19
20
20
19
19
21
・・・
・・・
19
19さいです。
20才
山本太郎20才。
私は19歳です。
年齢は19です。
年齢は21です。
・・・・・・・・・・・
・・・・・・・・・・・
こういう時こそ、正規表現による後方参照の出番!
まず、元のデータで、文字列の中の年齢(数字)だ
けを取り出すにはどうすればいいだろうか?
例えば、先ほどのデータは下のような正規表現で
年齢を他の部分から区別することができる。
^[^0-9]+[0-9]+.*$
行の先頭
数字以
外の文
字列
数字の
連続
残りの
全ての
文字列
行の終端
[email protected] 私は19歳です。
[email protected] 20才
................................ .....................
正規表現で、年齢を他と区別することはできたが、それぞれ異な
る検索結果を置換文字列にするにはどうすればいい?
検索文字列
^[^0-9]+[0-9]+.*$
上の囲みの中の
正規表現が各行
の年齢とマッチ
[email protected] 私は19歳です。
[email protected] 20才
[email protected] 年齢は21です。
[email protected] 19さいです。
[email protected] 山本太郎20才。
[email protected] 19
[email protected] 年齢は19です。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
置換文字列には、検
索文字列でマッチした
数字そのものを持って
きたい
19
20
21
19
20
19
19
検索文字列に後方参照を使うことで、各要素がマッチした文字列を、
置換文字列として使うことができる。
( )で囲まれた部分に左から番号をつけて、置換文字列に使う
^([^0-9]+)([0-9]+).*$
¥1
行の先頭
検索文
字列
¥2
数字以外
の文字列
数字の
連続
残りの
文字列
行の終端
置換文字列を
¥2
[email protected] 私は19歳です。
[email protected] 20才
[email protected] 年齢は21です。
にすると、
19
20
21
¥2に対応する数字(年
齢)と置換される
正規表現の後方参照をつかうことにより、元のリストから、
年齢を切り出すことが出来た
検索文字列
^([^0-9]+)([0-9]+).*$
対象とするデータ
[email protected] 私は19歳です。
[email protected] 20才
[email protected] 年齢は21です。
[email protected] 19さいです。
[email protected] 山本太郎20才。
[email protected] 19
[email protected] 年齢は19です。
置換文字列
¥2
置換結果
19
20
21
19
20
19
19
今日の課題:「[email protected]<タブ>20<タブ>山本太郎20才。」のような
置換結果を得るための検索文字列と置換文字列を答えなさい。