Created
April 12, 2022 15:34
-
-
Save Steboss89/20a6e32f6df93ad1d83f5bfd4ca25a37 to your computer and use it in GitHub Desktop.
Third winning approach for regex
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| one_to_9 = r"(?:f(?:ive|our)|s(?:even|ix)|t(?:hree|wo)|(?:ni|o)ne|eight)" # end one_to_9 definition | |
| ten_to_19 = r"(?:(?:(?:s(?:even|ix)|f(?:our|if)|nine)te|e(?:ighte|lev))en|t(?:(?:hirte)?en|welve))" # end ten_to_19 definition | |
| two_digit_prefix = r"(?:(?:s(?:even|ix)|t(?:hir|wen)|f(?:if|or)|eigh|nine)ty)" # end two_digit_prefix definition | |
| one_to_99 = fr"(?:{two_digit_prefix}(?:[-\s]{one_to_9})?|{ten_to_19}|{one_to_9})" # end one_to_99 definition | |
| one_to_999 = fr"(?:{one_to_9}\shundred(?:\s(?:and\s)?{one_to_99})?|{one_to_99})" # end one_to_999 definition | |
| one_to_999_999 = fr"(?:{one_to_999}\sthousand(?:\s{one_to_999})?|{one_to_999})" # end one_to_999_999 definition | |
| one_to_999_999_999 = fr"(?:{one_to_999}\smillion(?:\s{one_to_999_999})?|{one_to_999_999})" # end one_to_999_999_999 definition | |
| one_to_999_999_999_999 = fr"(?:{one_to_999}\sbillion(?:\s{one_to_999_999_999})?|{one_to_999_999_999})" # end one_to_999_999_999_999 definition | |
| one_to_999_999_999_999_999 = fr"(?:{one_to_999}\strillion(?:\s{one_to_999_999_999_999})?|{one_to_999_999_999_999})" # end one_to_999_999_999_999_999 definition | |
| bignumber = fr"(?:zero|{one_to_999_999_999_999_999})" # end bignumber definition | |
| zero_to_9 = fr"(?:{one_to_9}|zero)" # end zero to 9 definition | |
| decimals = fr"point(?:\s{zero_to_9})+" # end decimals definition | |
| numeral_pattern = fr"{bignumber}(?:\s{decimals})?" | |
| re.findall(numeral_pattern, data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment