- ベストアンサー
正規表現の例外表記は?
例えば [あ(]{5}あ) と書き (あああああ)~ああああ(あ)までカッコが最低1つ含むものにマッチさせたい場合、全てが「あ」の「ああああああ)」のみを除外したいのですが記述可能でしょうか? (本来上記記述では「(((あああ)」等、カッコが複数ある場合にもマッチしましが検索される側には存在しないので今回無視しています)
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
除外とは微妙に異なりますが、「~という表現が続かない位置」」を意味する、「否定先読み」があります。 (?!ああああああ))[あ(]{5}あ) もっと単純にした方が確実になり、不一致複数カッコにも対応します。 (?:(あ{5}|あ(あ{4}|あ{2}(あ{3}|あ{3}(あ{2}|あ{4}(あ)) ------------------------------------------------------------ >(あああああ)~ああああ(あ)までカッコが最低1つ含むもの >全てが「あ」の「ああああああ)」のみを除外 以下のように理解しておきました。 正規表現をリクエストする際は、このようにマッチ例のリストを豊富に提示すると要望が確実に伝わり、回答者が楽です。 例 1. りんご(あああああ)みかん 2. りんごあ(ああああ)みかん 3. りんごああああ(あ)みかん 4. りんごああああああ)みかん 期待するマッチ結果 1. (あああああ) 2. あ(ああああ) 3. ああああ(あ) 4. マッチしない
お礼
ありがとうございます。 これで何とか形になりそうです。 「先読み」「後読み」「否定」「肯定」の理解を深めることが正規表現を理解する上で最大のポイントであることがわかりました。