beancount-gs/.env/Lib/site-packages/beancount/utils/regexp_utils.py

1343 lines
30 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Regular expression helpers.
"""
__copyright__ = "Copyright (C) 2018 Martin Blais"
__license__ = "GNU GPLv2"
UNICODE_RANGES = {
# Letters.
'L': (r'\u0041-\u005A'
r'\u0061-\u007A'
r'\u00AA'
r'\u00B5'
r'\u00BA'
r'\u00C0-\u00D6'
r'\u00D8-\u00F6'
r'\u00F8-\u02C1'
r'\u02C6-\u02D1'
r'\u02E0-\u02E4'
r'\u02EC'
r'\u02EE'
r'\u0370-\u0374'
r'\u0376-\u0377'
r'\u037A-\u037D'
r'\u0386'
r'\u0388-\u038A'
r'\u038C'
r'\u038E-\u03A1'
r'\u03A3-\u03F5'
r'\u03F7-\u0481'
r'\u048A-\u0523'
r'\u0531-\u0556'
r'\u0559'
r'\u0561-\u0587'
r'\u05D0-\u05EA'
r'\u05F0-\u05F2'
r'\u0621-\u064A'
r'\u066E-\u066F'
r'\u0671-\u06D3'
r'\u06D5'
r'\u06E5-\u06E6'
r'\u06EE-\u06EF'
r'\u06FA-\u06FC'
r'\u06FF'
r'\u0710'
r'\u0712-\u072F'
r'\u074D-\u07A5'
r'\u07B1'
r'\u07CA-\u07EA'
r'\u07F4-\u07F5'
r'\u07FA'
r'\u0904-\u0939'
r'\u093D'
r'\u0950'
r'\u0958-\u0961'
r'\u0971-\u0972'
r'\u097B-\u097F'
r'\u0985-\u098C'
r'\u098F-\u0990'
r'\u0993-\u09A8'
r'\u09AA-\u09B0'
r'\u09B2'
r'\u09B6-\u09B9'
r'\u09BD'
r'\u09CE'
r'\u09DC-\u09DD'
r'\u09DF-\u09E1'
r'\u09F0-\u09F1'
r'\u0A05-\u0A0A'
r'\u0A0F-\u0A10'
r'\u0A13-\u0A28'
r'\u0A2A-\u0A30'
r'\u0A32-\u0A33'
r'\u0A35-\u0A36'
r'\u0A38-\u0A39'
r'\u0A59-\u0A5C'
r'\u0A5E'
r'\u0A72-\u0A74'
r'\u0A85-\u0A8D'
r'\u0A8F-\u0A91'
r'\u0A93-\u0AA8'
r'\u0AAA-\u0AB0'
r'\u0AB2-\u0AB3'
r'\u0AB5-\u0AB9'
r'\u0ABD'
r'\u0AD0'
r'\u0AE0-\u0AE1'
r'\u0B05-\u0B0C'
r'\u0B0F-\u0B10'
r'\u0B13-\u0B28'
r'\u0B2A-\u0B30'
r'\u0B32-\u0B33'
r'\u0B35-\u0B39'
r'\u0B3D'
r'\u0B5C-\u0B5D'
r'\u0B5F-\u0B61'
r'\u0B71'
r'\u0B83'
r'\u0B85-\u0B8A'
r'\u0B8E-\u0B90'
r'\u0B92-\u0B95'
r'\u0B99-\u0B9A'
r'\u0B9C'
r'\u0B9E-\u0B9F'
r'\u0BA3-\u0BA4'
r'\u0BA8-\u0BAA'
r'\u0BAE-\u0BB9'
r'\u0BD0'
r'\u0C05-\u0C0C'
r'\u0C0E-\u0C10'
r'\u0C12-\u0C28'
r'\u0C2A-\u0C33'
r'\u0C35-\u0C39'
r'\u0C3D'
r'\u0C58-\u0C59'
r'\u0C60-\u0C61'
r'\u0C85-\u0C8C'
r'\u0C8E-\u0C90'
r'\u0C92-\u0CA8'
r'\u0CAA-\u0CB3'
r'\u0CB5-\u0CB9'
r'\u0CBD'
r'\u0CDE'
r'\u0CE0-\u0CE1'
r'\u0D05-\u0D0C'
r'\u0D0E-\u0D10'
r'\u0D12-\u0D28'
r'\u0D2A-\u0D39'
r'\u0D3D'
r'\u0D60-\u0D61'
r'\u0D7A-\u0D7F'
r'\u0D85-\u0D96'
r'\u0D9A-\u0DB1'
r'\u0DB3-\u0DBB'
r'\u0DBD'
r'\u0DC0-\u0DC6'
r'\u0E01-\u0E30'
r'\u0E32-\u0E33'
r'\u0E40-\u0E46'
r'\u0E81-\u0E82'
r'\u0E84'
r'\u0E87-\u0E88'
r'\u0E8A'
r'\u0E8D'
r'\u0E94-\u0E97'
r'\u0E99-\u0E9F'
r'\u0EA1-\u0EA3'
r'\u0EA5'
r'\u0EA7'
r'\u0EAA-\u0EAB'
r'\u0EAD-\u0EB0'
r'\u0EB2-\u0EB3'
r'\u0EBD'
r'\u0EC0-\u0EC4'
r'\u0EC6'
r'\u0EDC-\u0EDD'
r'\u0F00'
r'\u0F40-\u0F47'
r'\u0F49-\u0F6C'
r'\u0F88-\u0F8B'
r'\u1000-\u102A'
r'\u103F'
r'\u1050-\u1055'
r'\u105A-\u105D'
r'\u1061'
r'\u1065-\u1066'
r'\u106E-\u1070'
r'\u1075-\u1081'
r'\u108E'
r'\u10A0-\u10C5'
r'\u10D0-\u10FA'
r'\u10FC'
r'\u1100-\u1159'
r'\u115F-\u11A2'
r'\u11A8-\u11F9'
r'\u1200-\u1248'
r'\u124A-\u124D'
r'\u1250-\u1256'
r'\u1258'
r'\u125A-\u125D'
r'\u1260-\u1288'
r'\u128A-\u128D'
r'\u1290-\u12B0'
r'\u12B2-\u12B5'
r'\u12B8-\u12BE'
r'\u12C0'
r'\u12C2-\u12C5'
r'\u12C8-\u12D6'
r'\u12D8-\u1310'
r'\u1312-\u1315'
r'\u1318-\u135A'
r'\u1380-\u138F'
r'\u13A0-\u13F4'
r'\u1401-\u166C'
r'\u166F-\u1676'
r'\u1681-\u169A'
r'\u16A0-\u16EA'
r'\u16EE-\u16F0'
r'\u1700-\u170C'
r'\u170E-\u1711'
r'\u1720-\u1731'
r'\u1740-\u1751'
r'\u1760-\u176C'
r'\u176E-\u1770'
r'\u1780-\u17B3'
r'\u17D7'
r'\u17DC'
r'\u1820-\u1877'
r'\u1880-\u18A8'
r'\u18AA'
r'\u1900-\u191C'
r'\u1950-\u196D'
r'\u1970-\u1974'
r'\u1980-\u19A9'
r'\u19C1-\u19C7'
r'\u1A00-\u1A16'
r'\u1B05-\u1B33'
r'\u1B45-\u1B4B'
r'\u1B83-\u1BA0'
r'\u1BAE-\u1BAF'
r'\u1C00-\u1C23'
r'\u1C4D-\u1C4F'
r'\u1C5A-\u1C7D'
r'\u1D00-\u1DBF'
r'\u1E00-\u1F15'
r'\u1F18-\u1F1D'
r'\u1F20-\u1F45'
r'\u1F48-\u1F4D'
r'\u1F50-\u1F57'
r'\u1F59'
r'\u1F5B'
r'\u1F5D'
r'\u1F5F-\u1F7D'
r'\u1F80-\u1FB4'
r'\u1FB6-\u1FBC'
r'\u1FBE'
r'\u1FC2-\u1FC4'
r'\u1FC6-\u1FCC'
r'\u1FD0-\u1FD3'
r'\u1FD6-\u1FDB'
r'\u1FE0-\u1FEC'
r'\u1FF2-\u1FF4'
r'\u1FF6-\u1FFC'
r'\u2071'
r'\u207F'
r'\u2090-\u2094'
r'\u2102'
r'\u2107'
r'\u210A-\u2113'
r'\u2115'
r'\u2119-\u211D'
r'\u2124'
r'\u2126'
r'\u2128'
r'\u212A-\u212D'
r'\u212F-\u2139'
r'\u213C-\u213F'
r'\u2145-\u2149'
r'\u214E'
r'\u2160-\u2188'
r'\u2C00-\u2C2E'
r'\u2C30-\u2C5E'
r'\u2C60-\u2C6F'
r'\u2C71-\u2C7D'
r'\u2C80-\u2CE4'
r'\u2D00-\u2D25'
r'\u2D30-\u2D65'
r'\u2D6F'
r'\u2D80-\u2D96'
r'\u2DA0-\u2DA6'
r'\u2DA8-\u2DAE'
r'\u2DB0-\u2DB6'
r'\u2DB8-\u2DBE'
r'\u2DC0-\u2DC6'
r'\u2DC8-\u2DCE'
r'\u2DD0-\u2DD6'
r'\u2DD8-\u2DDE'
r'\u2E2F'
r'\u3005-\u3007'
r'\u3021-\u3029'
r'\u3031-\u3035'
r'\u3038-\u303C'
r'\u3041-\u3096'
r'\u309D-\u309F'
r'\u30A1-\u30FA'
r'\u30FC-\u30FF'
r'\u3105-\u312D'
r'\u3131-\u318E'
r'\u31A0-\u31B7'
r'\u31F0-\u31FF'
r'\u3400-\u4DBF'
r'\u4E00-\u9FFC'
r'\uA000-\uA48C'
r'\uA500-\uA60C'
r'\uA610-\uA61F'
r'\uA62A-\uA62B'
r'\uA640-\uA65F'
r'\uA662-\uA66E'
r'\uA67F-\uA697'
r'\uA717-\uA71F'
r'\uA722-\uA788'
r'\uA78B-\uA78C'
r'\uA7FB-\uA801'
r'\uA803-\uA805'
r'\uA807-\uA80A'
r'\uA80C-\uA822'
r'\uA840-\uA873'
r'\uA882-\uA8B3'
r'\uA90A-\uA925'
r'\uA930-\uA946'
r'\uAA00-\uAA28'
r'\uAA40-\uAA42'
r'\uAA44-\uAA4B'
r'\uAC00'
r'\uD7A3'
r'\uF900-\uFA2D'
r'\uFA30-\uFA6A'
r'\uFA70-\uFAD9'
r'\uFB00-\uFB06'
r'\uFB13-\uFB17'
r'\uFB1D'
r'\uFB1F-\uFB28'
r'\uFB2A-\uFB36'
r'\uFB38-\uFB3C'
r'\uFB3E'
r'\uFB40-\uFB41'
r'\uFB43-\uFB44'
r'\uFB46-\uFBB1'
r'\uFBD3-\uFD3D'
r'\uFD50-\uFD8F'
r'\uFD92-\uFDC7'
r'\uFDF0-\uFDFB'
r'\uFE70-\uFE74'
r'\uFE76-\uFEFC'
r'\uFF21-\uFF3A'
r'\uFF41-\uFF5A'
r'\uFF66-\uFFBE'
r'\uFFC2-\uFFC7'
r'\uFFCA-\uFFCF'
r'\uFFD2-\uFFD7'
r'\uFFDA-\uFFDC'),
# Uppercase letters.
'Lu': (r'\u0041-\u005a'
r'\u00c0-\u00d6'
r'\u00d8-\u00de'
r'\u0100'
r'\u0102'
r'\u0104'
r'\u0106'
r'\u0108'
r'\u010a'
r'\u010c'
r'\u010e'
r'\u0110'
r'\u0112'
r'\u0114'
r'\u0116'
r'\u0118'
r'\u011a'
r'\u011c'
r'\u011e'
r'\u0120'
r'\u0122'
r'\u0124'
r'\u0126'
r'\u0128'
r'\u012a'
r'\u012c'
r'\u012e'
r'\u0130'
r'\u0132'
r'\u0134'
r'\u0136'
r'\u0139'
r'\u013b'
r'\u013d'
r'\u013f'
r'\u0141'
r'\u0143'
r'\u0145'
r'\u0147'
r'\u014a'
r'\u014c'
r'\u014e'
r'\u0150'
r'\u0152'
r'\u0154'
r'\u0156'
r'\u0158'
r'\u015a'
r'\u015c'
r'\u015e'
r'\u0160'
r'\u0162'
r'\u0164'
r'\u0166'
r'\u0168'
r'\u016a'
r'\u016c'
r'\u016e'
r'\u0170'
r'\u0172'
r'\u0174'
r'\u0176'
r'\u0178'
r'\u0179'
r'\u017b'
r'\u017d'
r'\u0181'
r'\u0182'
r'\u0184'
r'\u0186'
r'\u0187'
r'\u0189-'
r'\u018b'
r'\u018e-\u0191'
r'\u0193'
r'\u0194'
r'\u0196-'
r'\u0198'
r'\u019c'
r'\u019d'
r'\u019f'
r'\u01a0'
r'\u01a2'
r'\u01a4'
r'\u01a6'
r'\u01a7'
r'\u01a9'
r'\u01ac'
r'\u01ae'
r'\u01af'
r'\u01b1-\u01b3'
r'\u01b5'
r'\u01b7'
r'\u01b8'
r'\u01bc'
r'\u01c4'
r'\u01c7'
r'\u01ca'
r'\u01cd'
r'\u01cf'
r'\u01d1'
r'\u01d3'
r'\u01d5'
r'\u01d7'
r'\u01d9'
r'\u01db'
r'\u01de'
r'\u01e0'
r'\u01e2'
r'\u01e4'
r'\u01e6'
r'\u01e8'
r'\u01ea'
r'\u01ec'
r'\u01ee'
r'\u01f1'
r'\u01f4'
r'\u01f6-\u01f8'
r'\u01fa'
r'\u01fc'
r'\u01fe'
r'\u0200'
r'\u0202'
r'\u0204'
r'\u0206'
r'\u0208'
r'\u020a'
r'\u020c'
r'\u020e'
r'\u0210'
r'\u0212'
r'\u0214'
r'\u0216'
r'\u0218'
r'\u021a'
r'\u021c'
r'\u021e'
r'\u0220'
r'\u0222'
r'\u0224'
r'\u0226'
r'\u0228'
r'\u022a'
r'\u022c'
r'\u022e'
r'\u0230'
r'\u0232'
r'\u023a'
r'\u023b'
r'\u023d'
r'\u023e'
r'\u0241'
r'\u0243-\u0246'
r'\u0248'
r'\u024a'
r'\u024c'
r'\u024e'
r'\u0386'
r'\u0388-\u038a'
r'\u038c'
r'\u038e'
r'\u038f'
r'\u0391-\u03a1'
r'\u03a3-\u03ab'
r'\u03d2-\u03d4'
r'\u03d8'
r'\u03da'
r'\u03dc'
r'\u03de'
r'\u03e0'
r'\u03e2'
r'\u03e4'
r'\u03e6'
r'\u03e8'
r'\u03ea'
r'\u03ec'
r'\u03ee'
r'\u03f4'
r'\u03f7'
r'\u03f9'
r'\u03fa'
r'\u03fd-\u042f'
r'\u0460'
r'\u0462'
r'\u0464'
r'\u0466'
r'\u0468'
r'\u046a'
r'\u046c'
r'\u046e'
r'\u0470'
r'\u0472'
r'\u0474'
r'\u0476'
r'\u0478'
r'\u047a'
r'\u047c'
r'\u047e'
r'\u0480'
r'\u048a'
r'\u048c'
r'\u048e'
r'\u0490'
r'\u0492'
r'\u0494'
r'\u0496'
r'\u0498'
r'\u049a'
r'\u049c'
r'\u049e'
r'\u04a0'
r'\u04a2'
r'\u04a4'
r'\u04a6'
r'\u04a8'
r'\u04aa'
r'\u04ac'
r'\u04ae'
r'\u04b0'
r'\u04b2'
r'\u04b4'
r'\u04b6'
r'\u04b8'
r'\u04ba'
r'\u04bc'
r'\u04be'
r'\u04c0'
r'\u04c1'
r'\u04c3'
r'\u04c5'
r'\u04c7'
r'\u04c9'
r'\u04cb'
r'\u04cd'
r'\u04d0'
r'\u04d2'
r'\u04d4'
r'\u04d6'
r'\u04d8'
r'\u04da'
r'\u04dc'
r'\u04de'
r'\u04e0'
r'\u04e2'
r'\u04e4'
r'\u04e6'
r'\u04e8'
r'\u04ea'
r'\u04ec'
r'\u04ee'
r'\u04f0'
r'\u04f2'
r'\u04f4'
r'\u04f6'
r'\u04f8'
r'\u04fa'
r'\u04fc'
r'\u04fe'
r'\u0500'
r'\u0502'
r'\u0504'
r'\u0506'
r'\u0508'
r'\u050a'
r'\u050c'
r'\u050e'
r'\u0510'
r'\u0512'
r'\u0531-\u0556'
r'\u10a0-\u10c5'
r'\u1e00'
r'\u1e02'
r'\u1e04'
r'\u1e06'
r'\u1e08'
r'\u1e0a'
r'\u1e0c'
r'\u1e0e'
r'\u1e10'
r'\u1e12'
r'\u1e14'
r'\u1e16'
r'\u1e18'
r'\u1e1a'
r'\u1e1c'
r'\u1e1e'
r'\u1e20'
r'\u1e22'
r'\u1e24'
r'\u1e26'
r'\u1e28'
r'\u1e2a'
r'\u1e2c'
r'\u1e2e'
r'\u1e30'
r'\u1e32'
r'\u1e34'
r'\u1e36'
r'\u1e38'
r'\u1e3a'
r'\u1e3c'
r'\u1e3e'
r'\u1e40'
r'\u1e42'
r'\u1e44'
r'\u1e46'
r'\u1e48'
r'\u1e4a'
r'\u1e4c'
r'\u1e4e'
r'\u1e50'
r'\u1e52'
r'\u1e54'
r'\u1e56'
r'\u1e58'
r'\u1e5a'
r'\u1e5c'
r'\u1e5e'
r'\u1e60'
r'\u1e62'
r'\u1e64'
r'\u1e66'
r'\u1e68'
r'\u1e6a'
r'\u1e6c'
r'\u1e6e'
r'\u1e70'
r'\u1e72'
r'\u1e74'
r'\u1e76'
r'\u1e78'
r'\u1e7a'
r'\u1e7c'
r'\u1e7e'
r'\u1e80'
r'\u1e82'
r'\u1e84'
r'\u1e86'
r'\u1e88'
r'\u1e8a'
r'\u1e8c'
r'\u1e8e'
r'\u1e90'
r'\u1e92'
r'\u1e94'
r'\u1ea0'
r'\u1ea2'
r'\u1ea4'
r'\u1ea6'
r'\u1ea8'
r'\u1eaa'
r'\u1eac'
r'\u1eae'
r'\u1eb0'
r'\u1eb2'
r'\u1eb4'
r'\u1eb6'
r'\u1eb8'
r'\u1eba'
r'\u1ebc'
r'\u1ebe'
r'\u1ec0'
r'\u1ec2'
r'\u1ec4'
r'\u1ec6'
r'\u1ec8'
r'\u1eca'
r'\u1ecc'
r'\u1ece'
r'\u1ed0'
r'\u1ed2'
r'\u1ed4'
r'\u1ed6'
r'\u1ed8'
r'\u1eda'
r'\u1edc'
r'\u1ede'
r'\u1ee0'
r'\u1ee2'
r'\u1ee4'
r'\u1ee6'
r'\u1ee8'
r'\u1eea'
r'\u1eec'
r'\u1eee'
r'\u1ef0'
r'\u1ef2'
r'\u1ef4'
r'\u1ef6'
r'\u1ef8'
r'\u1f08-\u1f0f'
r'\u1f18-\u1f1d'
r'\u1f28-\u1f2f'
r'\u1f38-\u1f3f'
r'\u1f48-\u1f4d'
r'\u1f59'
r'\u1f5b'
r'\u1f5d'
r'\u1f5f'
r'\u1f68-\u1f6f'
r'\u1fb8-\u1fbb'
r'\u1fc8-\u1fcb'
r'\u1fd8-\u1fdb'
r'\u1fe8-\u1fec'
r'\u1ff8-\u1ffb'
r'\u2102'
r'\u2107'
r'\u210b-\u210d'
r'\u2110-\u2112'
r'\u2115'
r'\u2119-\u211d'
r'\u2124'
r'\u2126'
r'\u2128'
r'\u212a-\u212d'
r'\u2130-\u2133'
r'\u213e'
r'\u213f'
r'\u2145'
r'\u2183'
r'\u2c00-\u2c2e'
r'\u2c60'
r'\u2c62-\u2c64'
r'\u2c67'
r'\u2c69'
r'\u2c6b'
r'\u2c75'
r'\u2c80'
r'\u2c82'
r'\u2c84'
r'\u2c86'
r'\u2c88'
r'\u2c8a'
r'\u2c8c'
r'\u2c8e'
r'\u2c90'
r'\u2c92'
r'\u2c94'
r'\u2c96'
r'\u2c98'
r'\u2c9a'
r'\u2c9c'
r'\u2c9e'
r'\u2ca0'
r'\u2ca2'
r'\u2ca4'
r'\u2ca6'
r'\u2ca8'
r'\u2caa'
r'\u2cac'
r'\u2cae'
r'\u2cb0'
r'\u2cb2'
r'\u2cb4'
r'\u2cb6'
r'\u2cb8'
r'\u2cba'
r'\u2cbc'
r'\u2cbe'
r'\u2cc0'
r'\u2cc2'
r'\u2cc4'
r'\u2cc6'
r'\u2cc8'
r'\u2cca'
r'\u2ccc'
r'\u2cce'
r'\u2cd0'
r'\u2cd2'
r'\u2cd4'
r'\u2cd6'
r'\u2cd8'
r'\u2cda'
r'\u2cdc'
r'\u2cde'
r'\u2ce0'
r'\u2ce2'
r'\uff21-\uff3a'),
# Uppercase letters AND \u4E00\u9FFC CJK统一象形文字扩展A \u3400\u4DBF
'Lu1': (r'\u0041-\u005a'
r'\u00c0-\u00d6'
r'\u00d8-\u00de'
r'\u0100'
r'\u0102'
r'\u0104'
r'\u0106'
r'\u0108'
r'\u010a'
r'\u010c'
r'\u010e'
r'\u0110'
r'\u0112'
r'\u0114'
r'\u0116'
r'\u0118'
r'\u011a'
r'\u011c'
r'\u011e'
r'\u0120'
r'\u0122'
r'\u0124'
r'\u0126'
r'\u0128'
r'\u012a'
r'\u012c'
r'\u012e'
r'\u0130'
r'\u0132'
r'\u0134'
r'\u0136'
r'\u0139'
r'\u013b'
r'\u013d'
r'\u013f'
r'\u0141'
r'\u0143'
r'\u0145'
r'\u0147'
r'\u014a'
r'\u014c'
r'\u014e'
r'\u0150'
r'\u0152'
r'\u0154'
r'\u0156'
r'\u0158'
r'\u015a'
r'\u015c'
r'\u015e'
r'\u0160'
r'\u0162'
r'\u0164'
r'\u0166'
r'\u0168'
r'\u016a'
r'\u016c'
r'\u016e'
r'\u0170'
r'\u0172'
r'\u0174'
r'\u0176'
r'\u0178'
r'\u0179'
r'\u017b'
r'\u017d'
r'\u0181'
r'\u0182'
r'\u0184'
r'\u0186'
r'\u0187'
r'\u0189-'
r'\u018b'
r'\u018e-\u0191'
r'\u0193'
r'\u0194'
r'\u0196-'
r'\u0198'
r'\u019c'
r'\u019d'
r'\u019f'
r'\u01a0'
r'\u01a2'
r'\u01a4'
r'\u01a6'
r'\u01a7'
r'\u01a9'
r'\u01ac'
r'\u01ae'
r'\u01af'
r'\u01b1-\u01b3'
r'\u01b5'
r'\u01b7'
r'\u01b8'
r'\u01bc'
r'\u01c4'
r'\u01c7'
r'\u01ca'
r'\u01cd'
r'\u01cf'
r'\u01d1'
r'\u01d3'
r'\u01d5'
r'\u01d7'
r'\u01d9'
r'\u01db'
r'\u01de'
r'\u01e0'
r'\u01e2'
r'\u01e4'
r'\u01e6'
r'\u01e8'
r'\u01ea'
r'\u01ec'
r'\u01ee'
r'\u01f1'
r'\u01f4'
r'\u01f6-\u01f8'
r'\u01fa'
r'\u01fc'
r'\u01fe'
r'\u0200'
r'\u0202'
r'\u0204'
r'\u0206'
r'\u0208'
r'\u020a'
r'\u020c'
r'\u020e'
r'\u0210'
r'\u0212'
r'\u0214'
r'\u0216'
r'\u0218'
r'\u021a'
r'\u021c'
r'\u021e'
r'\u0220'
r'\u0222'
r'\u0224'
r'\u0226'
r'\u0228'
r'\u022a'
r'\u022c'
r'\u022e'
r'\u0230'
r'\u0232'
r'\u023a'
r'\u023b'
r'\u023d'
r'\u023e'
r'\u0241'
r'\u0243-\u0246'
r'\u0248'
r'\u024a'
r'\u024c'
r'\u024e'
r'\u0386'
r'\u0388-\u038a'
r'\u038c'
r'\u038e'
r'\u038f'
r'\u0391-\u03a1'
r'\u03a3-\u03ab'
r'\u03d2-\u03d4'
r'\u03d8'
r'\u03da'
r'\u03dc'
r'\u03de'
r'\u03e0'
r'\u03e2'
r'\u03e4'
r'\u03e6'
r'\u03e8'
r'\u03ea'
r'\u03ec'
r'\u03ee'
r'\u03f4'
r'\u03f7'
r'\u03f9'
r'\u03fa'
r'\u03fd-\u042f'
r'\u0460'
r'\u0462'
r'\u0464'
r'\u0466'
r'\u0468'
r'\u046a'
r'\u046c'
r'\u046e'
r'\u0470'
r'\u0472'
r'\u0474'
r'\u0476'
r'\u0478'
r'\u047a'
r'\u047c'
r'\u047e'
r'\u0480'
r'\u048a'
r'\u048c'
r'\u048e'
r'\u0490'
r'\u0492'
r'\u0494'
r'\u0496'
r'\u0498'
r'\u049a'
r'\u049c'
r'\u049e'
r'\u04a0'
r'\u04a2'
r'\u04a4'
r'\u04a6'
r'\u04a8'
r'\u04aa'
r'\u04ac'
r'\u04ae'
r'\u04b0'
r'\u04b2'
r'\u04b4'
r'\u04b6'
r'\u04b8'
r'\u04ba'
r'\u04bc'
r'\u04be'
r'\u04c0'
r'\u04c1'
r'\u04c3'
r'\u04c5'
r'\u04c7'
r'\u04c9'
r'\u04cb'
r'\u04cd'
r'\u04d0'
r'\u04d2'
r'\u04d4'
r'\u04d6'
r'\u04d8'
r'\u04da'
r'\u04dc'
r'\u04de'
r'\u04e0'
r'\u04e2'
r'\u04e4'
r'\u04e6'
r'\u04e8'
r'\u04ea'
r'\u04ec'
r'\u04ee'
r'\u04f0'
r'\u04f2'
r'\u04f4'
r'\u04f6'
r'\u04f8'
r'\u04fa'
r'\u04fc'
r'\u04fe'
r'\u0500'
r'\u0502'
r'\u0504'
r'\u0506'
r'\u0508'
r'\u050a'
r'\u050c'
r'\u050e'
r'\u0510'
r'\u0512'
r'\u0531-\u0556'
r'\u10a0-\u10c5'
r'\u1e00'
r'\u1e02'
r'\u1e04'
r'\u1e06'
r'\u1e08'
r'\u1e0a'
r'\u1e0c'
r'\u1e0e'
r'\u1e10'
r'\u1e12'
r'\u1e14'
r'\u1e16'
r'\u1e18'
r'\u1e1a'
r'\u1e1c'
r'\u1e1e'
r'\u1e20'
r'\u1e22'
r'\u1e24'
r'\u1e26'
r'\u1e28'
r'\u1e2a'
r'\u1e2c'
r'\u1e2e'
r'\u1e30'
r'\u1e32'
r'\u1e34'
r'\u1e36'
r'\u1e38'
r'\u1e3a'
r'\u1e3c'
r'\u1e3e'
r'\u1e40'
r'\u1e42'
r'\u1e44'
r'\u1e46'
r'\u1e48'
r'\u1e4a'
r'\u1e4c'
r'\u1e4e'
r'\u1e50'
r'\u1e52'
r'\u1e54'
r'\u1e56'
r'\u1e58'
r'\u1e5a'
r'\u1e5c'
r'\u1e5e'
r'\u1e60'
r'\u1e62'
r'\u1e64'
r'\u1e66'
r'\u1e68'
r'\u1e6a'
r'\u1e6c'
r'\u1e6e'
r'\u1e70'
r'\u1e72'
r'\u1e74'
r'\u1e76'
r'\u1e78'
r'\u1e7a'
r'\u1e7c'
r'\u1e7e'
r'\u1e80'
r'\u1e82'
r'\u1e84'
r'\u1e86'
r'\u1e88'
r'\u1e8a'
r'\u1e8c'
r'\u1e8e'
r'\u1e90'
r'\u1e92'
r'\u1e94'
r'\u1ea0'
r'\u1ea2'
r'\u1ea4'
r'\u1ea6'
r'\u1ea8'
r'\u1eaa'
r'\u1eac'
r'\u1eae'
r'\u1eb0'
r'\u1eb2'
r'\u1eb4'
r'\u1eb6'
r'\u1eb8'
r'\u1eba'
r'\u1ebc'
r'\u1ebe'
r'\u1ec0'
r'\u1ec2'
r'\u1ec4'
r'\u1ec6'
r'\u1ec8'
r'\u1eca'
r'\u1ecc'
r'\u1ece'
r'\u1ed0'
r'\u1ed2'
r'\u1ed4'
r'\u1ed6'
r'\u1ed8'
r'\u1eda'
r'\u1edc'
r'\u1ede'
r'\u1ee0'
r'\u1ee2'
r'\u1ee4'
r'\u1ee6'
r'\u1ee8'
r'\u1eea'
r'\u1eec'
r'\u1eee'
r'\u1ef0'
r'\u1ef2'
r'\u1ef4'
r'\u1ef6'
r'\u1ef8'
r'\u1f08-\u1f0f'
r'\u1f18-\u1f1d'
r'\u1f28-\u1f2f'
r'\u1f38-\u1f3f'
r'\u1f48-\u1f4d'
r'\u1f59'
r'\u1f5b'
r'\u1f5d'
r'\u1f5f'
r'\u1f68-\u1f6f'
r'\u1fb8-\u1fbb'
r'\u1fc8-\u1fcb'
r'\u1fd8-\u1fdb'
r'\u1fe8-\u1fec'
r'\u1ff8-\u1ffb'
r'\u2102'
r'\u2107'
r'\u210b-\u210d'
r'\u2110-\u2112'
r'\u2115'
r'\u2119-\u211d'
r'\u2124'
r'\u2126'
r'\u2128'
r'\u212a-\u212d'
r'\u2130-\u2133'
r'\u213e'
r'\u213f'
r'\u2145'
r'\u2183'
r'\u2c00-\u2c2e'
r'\u2c60'
r'\u2c62-\u2c64'
r'\u2c67'
r'\u2c69'
r'\u2c6b'
r'\u2c75'
r'\u2c80'
r'\u2c82'
r'\u2c84'
r'\u2c86'
r'\u2c88'
r'\u2c8a'
r'\u2c8c'
r'\u2c8e'
r'\u2c90'
r'\u2c92'
r'\u2c94'
r'\u2c96'
r'\u2c98'
r'\u2c9a'
r'\u2c9c'
r'\u2c9e'
r'\u2ca0'
r'\u2ca2'
r'\u2ca4'
r'\u2ca6'
r'\u2ca8'
r'\u2caa'
r'\u2cac'
r'\u2cae'
r'\u2cb0'
r'\u2cb2'
r'\u2cb4'
r'\u2cb6'
r'\u2cb8'
r'\u2cba'
r'\u2cbc'
r'\u2cbe'
r'\u2cc0'
r'\u2cc2'
r'\u2cc4'
r'\u2cc6'
r'\u2cc8'
r'\u2cca'
r'\u2ccc'
r'\u2cce'
r'\u2cd0'
r'\u2cd2'
r'\u2cd4'
r'\u2cd6'
r'\u2cd8'
r'\u2cda'
r'\u2cdc'
r'\u2cde'
r'\u2ce0'
r'\u2ce2'
r'\u3400-\u4dbf'
r'\u4e00-\u9ffc'
r'\uff21-\uff3a'),
# Decimal numbers.
'Nd': (r'\u0030-\u0039'
r'\u0660-\u0669'
r'\u06f0-\u06f9'
r'\u07c0-\u07c9'
r'\u0966-\u096f'
r'\u09e6-\u09ef'
r'\u0a66-\u0a6f'
r'\u0ae6-\u0aef'
r'\u0b66-\u0b6f'
r'\u0be6-\u0bef'
r'\u0c66-\u0c6f'
r'\u0ce6-\u0cef'
r'\u0d66-\u0d6f'
r'\u0e50-\u0e59'
r'\u0ed0-\u0ed9'
r'\u0f20-\u0f29'
r'\u1040-\u1049'
r'\u17e0-\u17e9'
r'\u1810-\u1819'
r'\u1946-\u194f'
r'\u19d0-\u19d9'
r'\u1b50-\u1b59'
r'\uff10-\uff19'),
}
def re_replace_unicode(regexp):
"""Substitute Unicode Properties in regular expressions with their
corresponding expanded ranges.
Args:
regexp: A regular expression string.
Returns:
Return the regular expression with Unicode Properties substituted.
"""
for category, rangestr in UNICODE_RANGES.items():
regexp = regexp.replace(r'\p{' + category + '}', rangestr)
return regexp