2

キーワード置換の一部として、正確な単語に一致する正規表現を取得しようとしています。テストする次のステートメントがあります(ここの単語は「Foo」(大文字と小文字を区別)です):

foo.  
foo  
foos  
 foo .  
 foo.  
@{foo}  
Foo.  
Foo space  
Foo  
Foo.  
 Foo .  
  Foo.  
@{Foo}  
${Foo}  

今、私は次のことに近づきました:

\b(?![(\@|\$)\{])Foo\b  

\bふー\b

しかし、私はそれを否定することはできません

@{Foo} または ${Foo} 試してみると

[^(\@\{)]\bFoo\b  

以前は一致しなかった先頭の空白に一致するだけです。私の Regex-Fu はここでは弱いので、良い解決策、特にその方法を説明できる解決策を本当に感謝しています!

4

1 に答える 1

2

試す:

(?<![(@|\$)\{])\bFoo\b

問題[^(\@\{)]は、そのセットに含まれていない文字と一致することです。実際に一致することなく、その文字がそのセットに含まれていないことを確認したい場合。

(?<!yourmatch)は否定的な後ろ向きで、一致することなくパターンの存在をチェックします。

于 2013-11-11T17:17:36.680 に答える