×
[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で代用できるので省略します。