mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
bpo-31690: Allow the inline flags "a", "L", and "u" to be used as group flags for RE. (#3885)
This commit is contained in:
parent
fdd9b217c6
commit
3557b05c5a
11 changed files with 300 additions and 140 deletions
|
@ -13,7 +13,7 @@
|
|||
|
||||
# update when constants are added or removed
|
||||
|
||||
MAGIC = 20170530
|
||||
MAGIC = 20171005
|
||||
|
||||
from _sre import MAXREPEAT, MAXGROUPS
|
||||
|
||||
|
@ -84,25 +84,37 @@ OPCODES = _makecodes("""
|
|||
CALL
|
||||
CATEGORY
|
||||
CHARSET BIGCHARSET
|
||||
GROUPREF GROUPREF_EXISTS GROUPREF_IGNORE
|
||||
IN IN_IGNORE
|
||||
GROUPREF GROUPREF_EXISTS
|
||||
IN
|
||||
INFO
|
||||
JUMP
|
||||
LITERAL LITERAL_IGNORE
|
||||
LITERAL
|
||||
MARK
|
||||
MAX_UNTIL
|
||||
MIN_UNTIL
|
||||
NOT_LITERAL NOT_LITERAL_IGNORE
|
||||
NOT_LITERAL
|
||||
NEGATE
|
||||
RANGE
|
||||
REPEAT
|
||||
REPEAT_ONE
|
||||
SUBPATTERN
|
||||
MIN_REPEAT_ONE
|
||||
RANGE_IGNORE
|
||||
|
||||
GROUPREF_IGNORE
|
||||
IN_IGNORE
|
||||
LITERAL_IGNORE
|
||||
NOT_LITERAL_IGNORE
|
||||
|
||||
GROUPREF_LOC_IGNORE
|
||||
IN_LOC_IGNORE
|
||||
LITERAL_LOC_IGNORE
|
||||
NOT_LITERAL_LOC_IGNORE
|
||||
IN_LOC_IGNORE
|
||||
|
||||
GROUPREF_UNI_IGNORE
|
||||
IN_UNI_IGNORE
|
||||
LITERAL_UNI_IGNORE
|
||||
NOT_LITERAL_UNI_IGNORE
|
||||
RANGE_UNI_IGNORE
|
||||
|
||||
MIN_REPEAT MAX_REPEAT
|
||||
""")
|
||||
|
@ -113,7 +125,9 @@ ATCODES = _makecodes("""
|
|||
AT_BEGINNING AT_BEGINNING_LINE AT_BEGINNING_STRING
|
||||
AT_BOUNDARY AT_NON_BOUNDARY
|
||||
AT_END AT_END_LINE AT_END_STRING
|
||||
|
||||
AT_LOC_BOUNDARY AT_LOC_NON_BOUNDARY
|
||||
|
||||
AT_UNI_BOUNDARY AT_UNI_NON_BOUNDARY
|
||||
""")
|
||||
|
||||
|
@ -123,7 +137,9 @@ CHCODES = _makecodes("""
|
|||
CATEGORY_SPACE CATEGORY_NOT_SPACE
|
||||
CATEGORY_WORD CATEGORY_NOT_WORD
|
||||
CATEGORY_LINEBREAK CATEGORY_NOT_LINEBREAK
|
||||
|
||||
CATEGORY_LOC_WORD CATEGORY_LOC_NOT_WORD
|
||||
|
||||
CATEGORY_UNI_DIGIT CATEGORY_UNI_NOT_DIGIT
|
||||
CATEGORY_UNI_SPACE CATEGORY_UNI_NOT_SPACE
|
||||
CATEGORY_UNI_WORD CATEGORY_UNI_NOT_WORD
|
||||
|
@ -133,18 +149,20 @@ CHCODES = _makecodes("""
|
|||
|
||||
# replacement operations for "ignore case" mode
|
||||
OP_IGNORE = {
|
||||
GROUPREF: GROUPREF_IGNORE,
|
||||
IN: IN_IGNORE,
|
||||
LITERAL: LITERAL_IGNORE,
|
||||
NOT_LITERAL: NOT_LITERAL_IGNORE,
|
||||
RANGE: RANGE_IGNORE,
|
||||
}
|
||||
|
||||
OP_LOC_IGNORE = {
|
||||
OP_LOCALE_IGNORE = {
|
||||
LITERAL: LITERAL_LOC_IGNORE,
|
||||
NOT_LITERAL: NOT_LITERAL_LOC_IGNORE,
|
||||
}
|
||||
|
||||
OP_UNICODE_IGNORE = {
|
||||
LITERAL: LITERAL_UNI_IGNORE,
|
||||
NOT_LITERAL: NOT_LITERAL_UNI_IGNORE,
|
||||
}
|
||||
|
||||
AT_MULTILINE = {
|
||||
AT_BEGINNING: AT_BEGINNING_LINE,
|
||||
AT_END: AT_END_LINE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue