×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
- Newer: 実は一番使うUWSCスクリプト
- Older: UWSCでsleipnirを使う上での基本とコツ
UWSCやらなんやら
Home > > UWSCで正規表現を使う
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Home > > UWSCで正規表現を使う
UWSCで正規表現を使う場合にはVBScript又はJScriptを使うことにになるのですが、UWSCから使うならVBScriptの方が扱い安いですかね。
という事で今回はVBScriptのRegExpを使ったサンプル
正規表現のパターンの書方に関しては詳しく説明しないので各自ご確認を
Patternプロパティ | 正規表現で使用するパターン |
IgnoreCaseプロパティ | 大文字と小文字を区別する(デフォルト:False) |
Globalプロパティ | 文字列全体を検索する(デフォルト:False) |
Executeメソッド | Patternとマッチした結果をMatchesコレクションで返します。 |
Replaceメソッド | Patternとマッチした結果をを置換文字列と置き換えます。 |
Testメソッド | Patternとマッチした場合はTrueを返します。 |
Executeメソッドのサンプル
PUBLIC regvb = CreateOLEObj("VBScript.RegExp") //--sample //str="2012年1月1日~2012年1月30日" //Pattern="\d+年(\d+月\d+日)" // //Matches=regvb_Execute(str,Pattern) //for i=0 to Matches.Count-1 // Print Matches.item(i).Value // Print Matches.item(i).SubMatches(0) // Print Matches.item(i).FirstIndex // Print Matches.item(i).Length //next //-- Function regvb_Execute(str,Pattern,IgnoreCase=true,Global=true) regvb.IgnoreCase = IgnoreCase regvb.Global = Global regvb.Pattern=Pattern Matches = regvb.Execute(str) Result=Matches Fend
Countプロパティ | Matchオブジェクトの個数 |
Itemプロパティ | MatchオブジェクトをMatches.Item(数字)で返す |
Valueプロパティ | マッチした文字列を返す。 |
Lengthプロパティ | マッチした文字列の長さを返す。 |
FirstIndexプロパティ | 最初にマッチに成功した位置を返す。先頭は0から。 |
SubMatchesコレクション | 「()で括られた」パターングループにマッチしたコレクションを返す。 |
sampleを実行すると以下の結果になる
---------結果-------
2012年1月1日
1月1日
0
9
2012年1月30日
1月30日
10
10
------------------------
最初にマッチしたのは「2012年1月1日」でSubMatches(0)は「1月1日」文字位置は「0」で文字列の長さは9文字
Replaceメソッドのサンプル
PUBLIC regvb = CreateOLEObj("VBScript.RegExp") //--sample //str="2012年1月1日~2012年1月30日" //Pattern="\d+年" //Print regvb_Replace(str,Pattern,"2013年") //-- Function regvb_Replace(str,Pattern,replStr,IgnoreCase=true,Global=true) regvb.IgnoreCase = IgnoreCase regvb.Global = Global regvb.Pattern=Pattern str = regvb.Replace(str,replStr) Result=str Fend
sampleを実行すると以下の結果になる
---------結果-------
2013年1月1日~2013年1月30日
------------------------
TestメソッドはMatches.countが0だと失敗、0以上だと成功という風にExecuteで代用できるので省略します。