Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #198072
| From | ram@zedat.fu-berlin.de (Stefan Ram) |
|---|---|
| Newsgroups | comp.lang.python, alt.folklore.computers |
| Subject | Re: Pythonic way to combine regular expressions? |
| Date | 2026-09-25 19:08 +0000 |
| Organization | Stefan Ram |
| Message-ID | <pattern-20260925200755@ram.dialup.fu-berlin.de> (permalink) |
| References | <MrztS.208529$Nn1.7474@fx18.ams4> |
Cross-posted to 2 groups.
Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> wrote or quoted:
>What is a good way to combine regular expressions in Python? We are
>cogitating the most /Pythonic/ way to make this happen.
> number:
> sign? integer-constant
> | sign? floating-point-constant
> integer-constant:
> digit-sequence
> floating-point-constant:
> fractional-constant exponent?
> | digit-sequence exponent
> fractional-constant:
> digit-sequence? "." digit-sequence
> | digit-sequence "."
> exponent:
> ( "e" | "E" ) sign? digit-sequence
> sign:
> "+" | "-"
> digit-sequence:
> digit
> | digit digit-sequence
> digit:
> "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
Maybe something like this?
import re
from typing import Final
DIGIT: Final[ str ]= r"[0-9]"
DIGIT_SEQUENCE: Final[ str ]= rf"{DIGIT}+"
SIGN: Final[ str ]= r"[+-]"
EXPONENT: Final[ str ]= rf"[eE]{SIGN}?{DIGIT_SEQUENCE}"
FRACTIONAL_CONSTANT: Final[ str ]= \
rf"(?:(?:{DIGIT_SEQUENCE})?\.{DIGIT_SEQUENCE}|{DIGIT_SEQUENCE}\.)"
INTEGER_CONSTANT: Final[ str ]= DIGIT_SEQUENCE
FLOATING_POINT_CONSTANT: Final[ str ]= \
rf"(?:{FRACTIONAL_CONSTANT}(?:{EXPONENT})?|{DIGIT_SEQUENCE}{EXPONENT})"
NUMBER_PATTERN: Final[ str ]= \
rf"^{SIGN}?(?:{INTEGER_CONSTANT}|{FLOATING_POINT_CONSTANT})$"
NUMBER_VALIDATOR: Final[ re.Pattern[ str ]] = \
re.compile( NUMBER_PATTERN )
example = "123"
is_ok = bool( NUMBER_VALIDATOR.match( example ))
print( is_ok )
(Actually, the Pythonic pattern uses "(" where I wrote "\".)
Newsgroups: comp.lang.python,alt.folklore.computers
Followup-To: comp.lang.python
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Pythonic way to combine regular expressions? Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-09-26 02:54 +0800
Re: Pythonic way to combine regular expressions? ram@zedat.fu-berlin.de (Stefan Ram) - 2026-09-25 19:08 +0000
Re: Pythonic way to combine regular expressions? ram@zedat.fu-berlin.de (Stefan Ram) - 2026-09-25 19:19 +0000
Re: Pythonic way to combine regular expressions? ram@zedat.fu-berlin.de (Stefan Ram) - 2026-09-26 10:04 +0000
Re: Pythonic way to combine regular expressions? Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-09-26 20:09 +0800
Re: Pythonic way to combine regular expressions? ram@zedat.fu-berlin.de (Stefan Ram) - 2026-09-26 12:22 +0000
csiph-web