好きなおでんの具材ドラフト会議しましょう

VBScriptのRegExpオブジェクトで拡張機能を有効にするにはどのようにすればいいのでしょうか。例えば、後方一致(先読み)は正しく実行できますが、前方一致(後読み)は拡張機能となっているためそのままではエラーになりますがどのようにすれば前方一致(後読み)の機能が使えるようになるのでしょうか。(OSはWindowsXPです)
-------------------------------------
Option Explicit
dim a
dim bs
dim b
Dim o
Set o = new RegExp
o.IgnoreCase = False
o.Global = True
o.pattern = "\d+(?=年)"            '後方一致  <OK>
'o.pattern = "(?<=昭和)\d+"         '前方一致  <ERROR>
a="昭和45年と平成26年"
Set bs = o.Execute(a)
For Each b in bs
 WScript.echo b.FirstIndex+1 & "文字目の" & b.Value & "がマッチしました"
Next
Set o = Nothing
-------------------------------------

A 回答 (2件)

使用している拡張機能の構文からするとおそらく以下のページを参照されたのでしょう。


http://srcedit.pekori.jp/tool/re.html

しかし、そのページには
> 当ツールの正規表現エンジンはVBScriptのRegExpオブジェクトですが、
> 一部の表現は拡張機能でオリジナルとなっています。
と書いてあり、あなたが使えないと相談された拡張機能はその中に含まれます。

このページの大元をたどると以下のページにあたります。
http://srcedit.pekori.jp/tool/excelre.html
このページを読めばわかる通り、ページの筆者はExcelのアドインとして正規表現ツールを提供しており、先ほどのページはそのツールで使える正規表現の説明です。

つまり、この筆者が作成した正規表現ツールのVBScriptのRegExpからの拡張機能を、マイクロソフトがVBScript RegExpに追加した「正規表現の標準規格」(あればの話ですが)からの拡張機能と誤解されての質問と思われます。
    • good
    • 0
この回答へのお礼

まさにご指摘の通りで
上記のページを見ていて
拡張機能があると錯覚していました。
もし教えてもらえていなかったら
いまだに拡張機能を有効にする方法を
調べていたと思いますので助かりました。
ありがとうございました。

お礼日時:2014/02/26 11:13

VBScriptのRegExpに、拡張機能があるという事実はどこに書いてあったのでしょうか?


今までそんな話を見たことが無いのですが。
参考:
http://msdn.microsoft.com/ja-jp/library/cc392020 …
    • good
    • 0
この回答へのお礼

<http://srcedit.pekori.jp/tool/re.html>
のページを見て拡張機能があると思ったのですが
ANo.2のhitomuraさんがコメントされているように
私が拡張機能というものがあると誤解していました。
ありがとうございました。

お礼日時:2014/02/26 11:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報