狠狠撸

狠狠撸Share a Scribd company logo
社内勉強会
正規表現入門
 @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/){
<      $i?ndex = $1;
<      $ifname = $2;
---
> if($ifDescr[$i] = ̄ /IF-MIB?:?:ifDescr?.(?d+)?s+?=?s+STRING?:?s+([?S]+)?n/){    #修正①
>     $i?ndex = $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

正规表现勉强会入门

  • 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/){ < $i?ndex = $1; < $ifname = $2; --- > if($ifDescr[$i] = ̄ /IF-MIB?:?:ifDescr?.(?d+)?s+?=?s+STRING?:?s+([?S]+)?n/){ #修正① > $i?ndex = $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とかも説明します。