1343 lines
30 KiB
Python
1343 lines
30 KiB
Python
"""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
|