###前提・実現したいこと
正規表現からグループの数を取得したいです。
以下、イメージになります
①正規表現「(.+)_(\d{4,8})」の場合
(.+)グループ、(\d{4,8})グループ の【計2グループ】
②正規表現「(.+)(\d{4,8})(\S(\S))」の場合
(.+)グループ、(\d{4,8})グループ、(\S(\S))グループ
の【計3グループ】
③正規表現「(abc)」の場合
文字列「(abc)」のため【グループなし】
###発生している問題・エラーメッセージ
正規表現 (.+?) で該当した個数=グループ数にしようとしましたが、
エスケープをされた括弧 ( ) の考慮の仕方がわかりません。
(.+?) をグループの定義とすると
②のイメージでは、(\S(\S))グループ が (\S(\S)グループ
③のイメージでは、(abc)グループ扱い
になってしまいます。
###質問事項
- 「正規表現の正規表現」を使わなくとも、正規表現のグループ数を取得する方法はないでしょうか(PatternクラスやMatcherクラスを調べてみましたがいまいち見つけられませんでした……)
- 「正規表現の正規表現」を使う場合、どのような正規表現にすればいいでしょうか
不足情報などありましたら、そちらもご指摘願います。
何卒、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/20 01:06 編集