正規表現

1,072 views

Published on

第一回走る?それともITトークする会の資料です。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,072
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

正規表現

  1. 1. 正規表現の紹介 走る?それとも勉強する会 @masutaka 2009年7月31日
  2. 2. こんな経験はありませんか? <ul><li>条件をつけてテキストの検索や置換をしたい。 </li><ul><li>hoge< 数字 >huga を masu< 数字 >taka に置換したい。ただし、 hoge<ABC>huga は置換したくない。
  3. 3. 行頭の masutaka を置換したいが、文の途中にある masutaka は置換したくない。 </li></ul><li>ログ解析したい。 </li><ul><li>開始時間と終了時間 を抜き出して、パフォーマンス測定したい。 </li></ul></ul>
  4. 4. そんな時は? <ul><li>正規表現を使いましょう!! </li></ul>
  5. 5. 正規表現とは? <ul><li>ワイルドカードのようなもの。 </li><ul><li>ワイルドカード </li><ul><li>? </li><ul><li>任意の1文字 </li></ul><li>* </li><ul><li>任意の複数文字 </li></ul><li>[ch] </li><ul><li>cまたはh </li></ul></ul></ul><li>ただし正規表現とワイルドカードは書式がまったく違います。 </li></ul>
  6. 6. 正規表現の例 <ul><li>. </li><ul><li>任意の1文字にマッチ。 </li></ul><li>* </li><ul><li>直前の正規表現の0回以上の繰り返し。 </li></ul><li>[ ] </li><ul><li>括弧内に含まれる1文字にマッチ。 </li></ul><li>^ </li><ul><li>行の先頭にマッチ。 </li></ul></ul>
  7. 7. サポートするソフト <ul><li>秀丸や Emacs などのテキストエディタ
  8. 8. grep 系のコマンドラインツール
  9. 9. Ruby, Perl, Sed などのスクリプト言語
  10. 10. 他多数 </li></ul>
  11. 11. 注意点 <ul><li>複雑にしようと思えば、いくらでも複雑にできてしまう。 </li><ul><li>メールアドレス </li><ul><li>^[x01-x7F]+@(([-a-zA-Z0-9]+.)*[a-zA-Z]+|[d{1,3}.d{1,3}.d{1,3}.d{1,3}])
  12. 12. そもそも、メールアドレスに一致する正規表現はないという話も。。。 </li></ul></ul><li>ツールによっては、拡張正規表現が使えたり、さらにそれを拡張したものが使えたりするので注意。私は grep と egrep 、 sed でよくハマった。 </li></ul>
  13. 13. <ul><li>正規表現で楽に楽できるところは楽していきましょう。
  14. 14. でも、よく使うものだけ覚えれば充分です。
  15. 15. この後、秀丸と Meadow で軽く実演します。 </li></ul>まとめ
  16. 16. ご清聴ありがとうございました。
  17. 17. 参考資料 <ul><li>正規表現 - Wikipedia </li></ul>
  18. 18. <ul><li>OpenOffice.org の Impress というプレゼンソフトで作りました。 OpenOffice.orgは、オープンソースのオフィススウィートです。
  19. 19. Windows, UNIX系OS, MacOS Xで動作します。
  20. 20. MS-Officeと互換性があります。
  21. 21. PDF形式で保存することが出来ます。
  22. 22. 世界的なシェアは増加傾向だそうです。 </li><ul><li>最近では、 会津若松市 が有名です。 </li></ul></ul>このプレゼンは

×