正規表現は、それ自体では機能せず、文字列を受け入れます。のような正規表現
[fF][iI][rR][sS][tT][nN][aA][mM][Ee]
大文字と小文字の区別を問わず、文字列 'firstname' を受け入れます。次に、選択した言語で置換操作を記述して、認識された文字列を「firstName」に置き換えます。選択した正規表現の実装には、正規表現を簡素化する大文字と小文字を区別しないマッチング機能があることに気付くかもしれません。
問題は、式の正しい位置にない場合に FirstName の大文字と小文字を変更しないことです。つまり、例で FirstName の最初の出現を変更しますが、2 番目の出現は変更しません。デフォルトでは、正規表現が行で最初に一致したときにのみ置換を行うため、sed では簡単です。VBAでは、手がかりがありません。
あなたのルールは次のとおりです。
- 最初に一致した場合のみ大文字と小文字を変換します。
- 文字列の最初の = 記号の左側のみ大文字と小文字を変換します。
- match が "" 内にない場合にのみ大文字と小文字を変換します。
?
3 番目の場合、"" をネストできる場合に問題が発生する可能性があります。一部の実装ではこの制限を回避する方法がありますが、正規表現は大括弧の任意の深さの入れ子 (大括弧に使用される文字が何であれ) に実際には対処できません。ただし、特定の数の一致する括弧内の文字列に一致する正規表現を作成しようとしていることに気付いた場合は、間違ったツールを使用していることを確信できます。
編集:3番目のケースでは、正規表現を次のように変更します
.*[^"].*[fF][iI][rR][sS][tT][nN][aA][mM][Ee]
これは、先頭に "