• ベストアンサー

正規表現の例外表記は?

例えば [あ(]{5}あ) と書き (あああああ)~ああああ(あ)までカッコが最低1つ含むものにマッチさせたい場合、全てが「あ」の「ああああああ)」のみを除外したいのですが記述可能でしょうか? (本来上記記述では「(((あああ)」等、カッコが複数ある場合にもマッチしましが検索される側には存在しないので今回無視しています)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

除外とは微妙に異なりますが、「~という表現が続かない位置」」を意味する、「否定先読み」があります。 (?!ああああああ))[あ(]{5}あ) もっと単純にした方が確実になり、不一致複数カッコにも対応します。 (?:(あ{5}|あ(あ{4}|あ{2}(あ{3}|あ{3}(あ{2}|あ{4}(あ)) ------------------------------------------------------------ >(あああああ)~ああああ(あ)までカッコが最低1つ含むもの >全てが「あ」の「ああああああ)」のみを除外 以下のように理解しておきました。 正規表現をリクエストする際は、このようにマッチ例のリストを豊富に提示すると要望が確実に伝わり、回答者が楽です。 例 1. りんご(あああああ)みかん 2. りんごあ(ああああ)みかん 3. りんごああああ(あ)みかん 4. りんごああああああ)みかん 期待するマッチ結果 1. (あああああ) 2. あ(ああああ) 3. ああああ(あ) 4. マッチしない

ponsuke_21
質問者

お礼

ありがとうございます。 これで何とか形になりそうです。 「先読み」「後読み」「否定」「肯定」の理解を深めることが正規表現を理解する上で最大のポイントであることがわかりました。

関連するQ&A