SlideShare a Scribd company logo
1 of 6
Download to read offline
社内勉強会
正規表現入門
 @shugonumano
正規表現とは
•   文字列の集合を一つの文字列で表現する方法の一つ

•   ほとんどのプログラミング言語では、(中略)正規表
    現を使うことができる。AWK、Sed、Perl、
    Python、Ruby、Java、JavaScript、PHPなど

•   それぞれの言語やアプリケーションで細部の仕様が
    異なっているが、POSIXにより標準規格も定められ
    それに準拠するものも増えてきてはいる。
                                   引用:wikipedia
入門編
• 実際に見かける部分を中心に読みとい
 ていきます。

• ¥w,¥d,¥s,¥S,.,+,*,?とエスケープ など
• リファレンス的なものはググればあり
 ます
 http://rfs.jp/sb/perl/02/09.html
今日のお題
$ diff getstat_fw_vlan_***.pl.orig getstat_fw_vlan_***.pl
---snip---
62,65c62,64
<
< if($ifDescr[$i] =‾ /IF-MIB¥:¥:ifDescr¥.(¥d+)¥s+¥=¥s+STRING¥:¥s+(¥d+)¥n/){
<      $ifindex = $1;
<      $ifname = $2;
---
> if($ifDescr[$i] =‾ /IF-MIB¥:¥:ifDescr¥.(¥d+)¥s+¥=¥s+STRING¥:¥s+([¥S]+)¥n/){    #修正①
>     $ifindex = $1;
>     $ifname = $2;
68c67
< if($ifStatus[$i] =‾ /IF-MIB¥:¥:ifOperStatus¥.¥d+¥s+¥=¥s+INTEGER¥:¥s+(¥d+)¥n/){
---
> if($ifStatus[$i] =‾ /IF-MIB¥:¥:ifOperStatus¥.¥d+¥s+¥=¥s+INTEGER¥:¥s+¥w+¥((¥d+)¥)¥n/){   #修正②
79c78
<
---
>
82c81
<     if ( $stats == up(1) ) {
---
>     if ( $stats == 1 ) {         #修正③
その他
•   また、statsの/home/noah/snumano/PerlTestに下記ファイル
    を用意しましたので、各自コピーしてください。当日い
    ろいろといじっていきましょう。

    •   test.pl        # test用perl script

    •   test_ifDescr     # snmp ifDescrのoutput

    •   test_ifOperStatus # snmp ifOperStatusのoutput



•   あと、dumperとかも説明します。
質疑応答

More Related Content

Viewers also liked (8)

Girl Power (1)
Girl Power (1)Girl Power (1)
Girl Power (1)
 
Prezentatsia222 копия (2)
Prezentatsia222   копия (2)Prezentatsia222   копия (2)
Prezentatsia222 копия (2)
 
Moderno
ModernoModerno
Moderno
 
Factores o elementos de la comunicación
Factores o elementos de la comunicaciónFactores o elementos de la comunicación
Factores o elementos de la comunicación
 
Why SMS as an FMO
Why SMS as an FMOWhy SMS as an FMO
Why SMS as an FMO
 
Rami_CV
Rami_CVRami_CV
Rami_CV
 
Storyboard Page 5
Storyboard Page 5 Storyboard Page 5
Storyboard Page 5
 
ASM CWK: InDesign Guide.
ASM CWK: InDesign Guide.ASM CWK: InDesign Guide.
ASM CWK: InDesign Guide.
 

Similar to 正規表現勉強会入門

WordPress安全運用の基礎
WordPress安全運用の基礎WordPress安全運用の基礎
WordPress安全運用の基礎hiro345
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)nabe-abk
 
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...Toru Tamaki
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数Wataru Terada
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索Akio Ishida
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)Masanori Machii
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -Hayato Mizuno
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介sters
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)mametter
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるShintaro Fukushima
 
CodeIgniterによるPhwittr
CodeIgniterによるPhwittrCodeIgniterによるPhwittr
CodeIgniterによるPhwittrkenjis
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼうDaiki Ichinose
 

Similar to 正規表現勉強会入門 (20)

WordPress安全運用の基礎
WordPress安全運用の基礎WordPress安全運用の基礎
WordPress安全運用の基礎
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
Kusoss 29
Kusoss 29Kusoss 29
Kusoss 29
 
釧路OSS7月勉強会
釧路OSS7月勉強会釧路OSS7月勉強会
釧路OSS7月勉強会
 
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
 
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...
 
KUSHIROOSS_29
KUSHIROOSS_29KUSHIROOSS_29
KUSHIROOSS_29
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
 
CodeIgniterによるPhwittr
CodeIgniterによるPhwittrCodeIgniterによるPhwittr
CodeIgniterによるPhwittr
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼう
 

More from Shugo Numano

技術勉強会20150916
技術勉強会20150916技術勉強会20150916
技術勉強会20150916Shugo Numano
 
勉強会20150218 ロボット
勉強会20150218 ロボット勉強会20150218 ロボット
勉強会20150218 ロボットShugo Numano
 
20150101勉強会 dokku alt
20150101勉強会 dokku alt20150101勉強会 dokku alt
20150101勉強会 dokku altShugo Numano
 
社内勉強会_散歩系アプリ20141029
社内勉強会_散歩系アプリ20141029社内勉強会_散歩系アプリ20141029
社内勉強会_散歩系アプリ20141029Shugo Numano
 
MackerelAPI使ってみた
MackerelAPI使ってみたMackerelAPI使ってみた
MackerelAPI使ってみたShugo Numano
 
20120827勉強会 webアプリ作ってみた2
20120827勉強会 webアプリ作ってみた220120827勉強会 webアプリ作ってみた2
20120827勉強会 webアプリ作ってみた2Shugo Numano
 
20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみたShugo Numano
 
社内勉強会プロジェクションマッピング
社内勉強会プロジェクションマッピング社内勉強会プロジェクションマッピング
社内勉強会プロジェクションマッピングShugo Numano
 
勉強会20140416_iphone
勉強会20140416_iphone勉強会20140416_iphone
勉強会20140416_iphoneShugo Numano
 
勉強会20140319 rspec_capybara
勉強会20140319 rspec_capybara勉強会20140319 rspec_capybara
勉強会20140319 rspec_capybaraShugo Numano
 

More from Shugo Numano (15)

技術勉強会20150916
技術勉強会20150916技術勉強会20150916
技術勉強会20150916
 
勉強会20150617
勉強会20150617勉強会20150617
勉強会20150617
 
勉強会20150218 ロボット
勉強会20150218 ロボット勉強会20150218 ロボット
勉強会20150218 ロボット
 
20150101勉強会 dokku alt
20150101勉強会 dokku alt20150101勉強会 dokku alt
20150101勉強会 dokku alt
 
社内勉強会_散歩系アプリ20141029
社内勉強会_散歩系アプリ20141029社内勉強会_散歩系アプリ20141029
社内勉強会_散歩系アプリ20141029
 
MackerelAPI使ってみた
MackerelAPI使ってみたMackerelAPI使ってみた
MackerelAPI使ってみた
 
20120827勉強会 webアプリ作ってみた2
20120827勉強会 webアプリ作ってみた220120827勉強会 webアプリ作ってみた2
20120827勉強会 webアプリ作ってみた2
 
20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた
 
社内勉強会プロジェクションマッピング
社内勉強会プロジェクションマッピング社内勉強会プロジェクションマッピング
社内勉強会プロジェクションマッピング
 
勉強会20140416_iphone
勉強会20140416_iphone勉強会20140416_iphone
勉強会20140416_iphone
 
勉強会20140319 rspec_capybara
勉強会20140319 rspec_capybara勉強会20140319 rspec_capybara
勉強会20140319 rspec_capybara
 
勉強会20140207
勉強会20140207勉強会20140207
勉強会20140207
 
勉強会20131216
勉強会20131216勉強会20131216
勉強会20131216
 
Cloud foundry
Cloud foundryCloud foundry
Cloud foundry
 
Heroku
HerokuHeroku
Heroku
 

正規表現勉強会入門

  • 2. 正規表現とは • 文字列の集合を一つの文字列で表現する方法の一つ • ほとんどのプログラミング言語では、(中略)正規表 現を使うことができる。AWK、Sed、Perl、 Python、Ruby、Java、JavaScript、PHPなど • それぞれの言語やアプリケーションで細部の仕様が 異なっているが、POSIXにより標準規格も定められ それに準拠するものも増えてきてはいる。 引用:wikipedia
  • 3. 入門編 • 実際に見かける部分を中心に読みとい ていきます。 • ¥w,¥d,¥s,¥S,.,+,*,?とエスケープ など • リファレンス的なものはググればあり ます http://rfs.jp/sb/perl/02/09.html
  • 4. 今日のお題 $ diff getstat_fw_vlan_***.pl.orig getstat_fw_vlan_***.pl ---snip--- 62,65c62,64 < < if($ifDescr[$i] =‾ /IF-MIB¥:¥:ifDescr¥.(¥d+)¥s+¥=¥s+STRING¥:¥s+(¥d+)¥n/){ < $ifindex = $1; < $ifname = $2; --- > if($ifDescr[$i] =‾ /IF-MIB¥:¥:ifDescr¥.(¥d+)¥s+¥=¥s+STRING¥:¥s+([¥S]+)¥n/){ #修正① > $ifindex = $1; > $ifname = $2; 68c67 < if($ifStatus[$i] =‾ /IF-MIB¥:¥:ifOperStatus¥.¥d+¥s+¥=¥s+INTEGER¥:¥s+(¥d+)¥n/){ --- > if($ifStatus[$i] =‾ /IF-MIB¥:¥:ifOperStatus¥.¥d+¥s+¥=¥s+INTEGER¥:¥s+¥w+¥((¥d+)¥)¥n/){ #修正② 79c78 < --- > 82c81 < if ( $stats == up(1) ) { --- > if ( $stats == 1 ) {      #修正③
  • 5. その他 • また、statsの/home/noah/snumano/PerlTestに下記ファイル を用意しましたので、各自コピーしてください。当日い ろいろといじっていきましょう。 • test.pl # test用perl script • test_ifDescr # snmp ifDescrのoutput • test_ifOperStatus # snmp ifOperStatusのoutput • あと、dumperとかも説明します。