私はpython正規表現を持っています:
\A\s* # optional whitespace at the start, then
(?P<sign>[-+]?) # an optional sign, then
(?=\d|\.\d) # lookahead for digit or .digit
(?P<num>\d*) # numerator (possibly empty)
(?: # followed by
(?:/(?P<denom>\d+))? # an optional denominator
| # or
(?:\.(?P<decimal>\d*))? # an optional fractional part
(?:E(?P<exp>[-+]?\d+))? # and optional exponent
)
\s*\Z # and optional whitespace to finish
つまり、次の名前付きグループを取得します。
- 署名済み/署名なし | 有理数/小数/整数 | 数 | 指数あり/なし
しかし、私は C++11 正規表現形式と混同していますか? 私が読んだように、サポートされている形式はほとんどありませんが、これで正規表現パーサー例外が発生します。さらに、名前付きグループが C++11 正規表現でサポートされていないことを読みました。
同等のスキームを提供する C++11 互換の正規表現を取得するには?
ご助力ありがとうございます。