正規表現のnot演算子 質問する

正規表現のnot演算子 質問する

正規表現に NOT 演算子はありますか? 次の文字列のように:"(2001) (asdf) (dasd1123_asd 21.01.2011 zqge)(dzqge) name (20019)"

\([0-9a-zA-z _\.\-:]*\)年以外のすべてを削除したいのですが: (2001)

したがって、正規表現が返す内容は次のようになります(2001) name

注: のようなものは\((?![\d]){4}[0-9a-zA-z _\.\-:]*\)私には機能しません ((20019)何とか一致もします...)

ベストアンサー1

完全にはそうではありませんが、通常はいずれかのフォームで何らかの回避策を使用できます。

  • [^abc]、これは文字ごとにaまたはbではなくc
  • または否定先読み:a(?!b)、その後ab
  • または否定の後読み: (?<!a)b、ただしba

おすすめ記事