|
毎度お世話になっております。
さて、hmonig.dll および HmJreSelect.dll を使用して、Unicode クラスの Lu や L
l などに該当する
単語文字に大文字小文字を無視してマッチする正規表現パターンを実行すると、エ
ラーメッセージが出て
上手くマッチできないトラブルが起きています。
まず、hmonig.dll と HmJreSelect.dll をインストールして「動作環境」で正規表現
DLL を HmJreSelect.dll に
設定した上で、.HmJreSelect 設定ファイルを以下のようにします。
[DllSelector]
(?#hmonig)=hmonig.dll
[ReplaceRegExp]
(?#psvarname)=(?>(?:)|(?:@\A(?>
(?<varNameFirstChar>[_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}])
| (?<varNameBodyChar>(?>\g<varNameFirstChar>|[\p{Nd}]))
| (?<varName>(?<!\g<varNameBodyChar>)\g<varNameFirstChar>\g<varNameBod
yChar>*+)
)))
上記の [ReplaceRegExp] セクションの各項目は見やすいように改行やインデントを
挿入していますが、
実際に保存するときはこれらを置換で削除して 1 行 1 項目になるようにする必要が
あります。
そして、適当なファイルを開いて検索ダイアログから「大文字/小文字の区別」チェ
ックボックスと
正規表現内での「(?i)」オプションを切り替えながら、上記 .HmJreSelect で定義し
た部分式 \g<varName> を
検索して F3 キーを押します。
すると、以下の結果のように「大文字/小文字の区別」チェックボックスと「(?i)」
オプションとの
少なくとも 1 つを用いて、大文字小文字を無視した検索を行うと必ずエラーになっ
てしまいます。
1. 検索ダイアログと正規表現の両方で大文字小文字を区別。
検索パターン = (?#hmonig)(?#lookbehind)(?u)(?#psvarname)\g<va
rName>
大文字/小文字の区別 = 有効
結果 = 成功
2. 正規表現のみで大文字小文字を無視。
検索パターン = (?#hmonig)(?#lookbehind)(?iu)(?#psvarname)\g<v
arName>
大文字/小文字の区別 = 有効
結果 = エラー 122
3. 検索ダイアログのみで大文字小文字を無視。
検索パターン = (?#hmonig)(?#lookbehind)(?u)(?#psvarname)\g<va
rName>
大文字/小文字の区別 = 無効
結果 = エラー 217
4. 検索ダイアログと正規表現の両方で大文字小文字を無視。
検索パターン = (?#hmonig)(?#lookbehind)(?iu)(?#psvarname)\g<v
arName>
大文字/小文字の区別 = 無効
結果 = エラー 217
このため、PowerShell などの変数名やキーワードで大文字小文字を無視する言語の
ソース上での
検索や強調表示に支障を来して大変困っております。
環境は、
・秀丸エディタ : 9.15正式版 Float x64
・hmonig.dll : 0.8.7.0
・HmJreSelect.dll : 0.2.0
です。
|
|