python / python/cpython

Support set operations in regular expression character classes

Abierto
#152,100 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

stdlib topic-regex type-feature
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Feature or enhancement

Implement the set operations of Unicode Technical Standard #18 RL1.3 in re character classes, together with nested sets.

gh-74534 added FutureWarnings in Python 3.7 for the ambiguous constructs (--, &&, ~~, ||, and a leading [) as preparation for this syntax; this issue turns them into operators.

Two character sets are combined by an operator, where an operand may be a nested set in brackets:

  • [A--B] — difference: a character in A but not in B.
  • [A&&B] — intersection: a character in both A and B.
  • [A||B] — union: a character in A or B.
  • [A~~B] — symmetric difference: a character in A or B but not both.

Operators have no precedence and apply left to right; nested sets are used to group. A leading ^ complements the whole result.

For example, [a-z--[aeiou]] matches an ASCII lowercase consonant and [\w&&[a-z]] matches an ASCII lowercase letter.

Linked PRs
  • gh-152153
  • gh-152154
  • gh-152214
  • gh-153022

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza leyendo el manejo de clases de caracteres de re de Python y el Unicode Technical Standard #18 RL1.3. Confirma la finalización mediante los ejemplos enumerados de diferencia, intersección, unión, diferencia simétrica, anidamiento, evaluación de izquierda a derecha y complemento.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
tooling
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.