Visitar URL original
gh-95555: Support Unicode property escapes \p{...} in regular expressions by serhiy-storchaka · Pull Request #151969 · python/cpython · GitHub
Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge branch 'main' into re-properties
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
  • Loading branch information
serhiy-storchaka and claude committed Jun 24, 2026
commit b32bd8fa976140ba0aa7e1f569a8a3e92f22366d
122 changes: 51 additions & 71 deletions Modules/_sre/sre.c
Original file line number Diff line number Diff line change
Expand Up @@ -2008,6 +2008,56 @@ _validate_category(SRE_CODE arg)
case SRE_CATEGORY_UNI_NOT_WORD:
case SRE_CATEGORY_UNI_LINEBREAK:
case SRE_CATEGORY_UNI_NOT_LINEBREAK:
case SRE_CATEGORY_ALPHA:
case SRE_CATEGORY_NOT_ALPHA:
case SRE_CATEGORY_LOWER:
case SRE_CATEGORY_NOT_LOWER:
case SRE_CATEGORY_UPPER:
case SRE_CATEGORY_NOT_UPPER:
case SRE_CATEGORY_NUMERIC:
case SRE_CATEGORY_NOT_NUMERIC:
case SRE_CATEGORY_PRINTABLE:
case SRE_CATEGORY_NOT_PRINTABLE:
case SRE_CATEGORY_ALNUM:
case SRE_CATEGORY_NOT_ALNUM:
case SRE_CATEGORY_XID_START:
case SRE_CATEGORY_NOT_XID_START:
case SRE_CATEGORY_XID_CONTINUE:
case SRE_CATEGORY_NOT_XID_CONTINUE:
case SRE_CATEGORY_TITLE:
case SRE_CATEGORY_NOT_TITLE:
case SRE_CATEGORY_CASED:
case SRE_CATEGORY_NOT_CASED:
case SRE_CATEGORY_CASE_IGNORABLE:
case SRE_CATEGORY_NOT_CASE_IGNORABLE:
case SRE_CATEGORY_LU:
case SRE_CATEGORY_NOT_LU:
case SRE_CATEGORY_N:
case SRE_CATEGORY_NOT_N:
case SRE_CATEGORY_LM:
case SRE_CATEGORY_NOT_LM:
case SRE_CATEGORY_NL:
case SRE_CATEGORY_NOT_NL:
case SRE_CATEGORY_NO:
case SRE_CATEGORY_NOT_NO:
case SRE_CATEGORY_CF:
case SRE_CATEGORY_NOT_CF:
case SRE_CATEGORY_Z:
case SRE_CATEGORY_NOT_Z:
case SRE_CATEGORY_ZS:
case SRE_CATEGORY_NOT_ZS:
case SRE_CATEGORY_C:
case SRE_CATEGORY_NOT_C:
case SRE_CATEGORY_CN:
case SRE_CATEGORY_NOT_CN:
case SRE_CATEGORY_ASSIGNED:
case SRE_CATEGORY_NOT_ASSIGNED:
case SRE_CATEGORY_BLANK:
case SRE_CATEGORY_NOT_BLANK:
case SRE_CATEGORY_GRAPH:
case SRE_CATEGORY_NOT_GRAPH:
case SRE_CATEGORY_PRINT:
case SRE_CATEGORY_NOT_PRINT:
return 1;
default:
return 0;
Expand Down Expand Up @@ -2066,77 +2116,7 @@ _validate_charset(SRE_CODE *code, SRE_CODE *end)

case SRE_OP_CATEGORY:
GET_ARG;
switch (arg) {
case SRE_CATEGORY_DIGIT:
case SRE_CATEGORY_NOT_DIGIT:
case SRE_CATEGORY_SPACE:
case SRE_CATEGORY_NOT_SPACE:
case SRE_CATEGORY_WORD:
case SRE_CATEGORY_NOT_WORD:
case SRE_CATEGORY_LINEBREAK:
case SRE_CATEGORY_NOT_LINEBREAK:
case SRE_CATEGORY_LOC_WORD:
case SRE_CATEGORY_LOC_NOT_WORD:
case SRE_CATEGORY_UNI_DIGIT:
case SRE_CATEGORY_UNI_NOT_DIGIT:
case SRE_CATEGORY_UNI_SPACE:
case SRE_CATEGORY_UNI_NOT_SPACE:
case SRE_CATEGORY_UNI_WORD:
case SRE_CATEGORY_UNI_NOT_WORD:
case SRE_CATEGORY_UNI_LINEBREAK:
case SRE_CATEGORY_UNI_NOT_LINEBREAK:
case SRE_CATEGORY_ALPHA:
case SRE_CATEGORY_NOT_ALPHA:
case SRE_CATEGORY_LOWER:
case SRE_CATEGORY_NOT_LOWER:
case SRE_CATEGORY_UPPER:
case SRE_CATEGORY_NOT_UPPER:
case SRE_CATEGORY_NUMERIC:
case SRE_CATEGORY_NOT_NUMERIC:
case SRE_CATEGORY_PRINTABLE:
case SRE_CATEGORY_NOT_PRINTABLE:
case SRE_CATEGORY_ALNUM:
case SRE_CATEGORY_NOT_ALNUM:
case SRE_CATEGORY_XID_START:
case SRE_CATEGORY_NOT_XID_START:
case SRE_CATEGORY_XID_CONTINUE:
case SRE_CATEGORY_NOT_XID_CONTINUE:
case SRE_CATEGORY_TITLE:
case SRE_CATEGORY_NOT_TITLE:
case SRE_CATEGORY_CASED:
case SRE_CATEGORY_NOT_CASED:
case SRE_CATEGORY_CASE_IGNORABLE:
case SRE_CATEGORY_NOT_CASE_IGNORABLE:
case SRE_CATEGORY_LU:
case SRE_CATEGORY_NOT_LU:
case SRE_CATEGORY_N:
case SRE_CATEGORY_NOT_N:
case SRE_CATEGORY_LM:
case SRE_CATEGORY_NOT_LM:
case SRE_CATEGORY_NL:
case SRE_CATEGORY_NOT_NL:
case SRE_CATEGORY_NO:
case SRE_CATEGORY_NOT_NO:
case SRE_CATEGORY_CF:
case SRE_CATEGORY_NOT_CF:
case SRE_CATEGORY_Z:
case SRE_CATEGORY_NOT_Z:
case SRE_CATEGORY_ZS:
case SRE_CATEGORY_NOT_ZS:
case SRE_CATEGORY_C:
case SRE_CATEGORY_NOT_C:
case SRE_CATEGORY_CN:
case SRE_CATEGORY_NOT_CN:
case SRE_CATEGORY_ASSIGNED:
case SRE_CATEGORY_NOT_ASSIGNED:
case SRE_CATEGORY_BLANK:
case SRE_CATEGORY_NOT_BLANK:
case SRE_CATEGORY_GRAPH:
case SRE_CATEGORY_NOT_GRAPH:
case SRE_CATEGORY_PRINT:
case SRE_CATEGORY_NOT_PRINT:
break;
default:
if (!_validate_category(arg)) {
FAIL;
}
break;
Expand Down
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.