regular online example escape creator python regex numbers regex-group

online - python re.sub group: number after / number



regular expression python creator (1)

¿Cómo puedo reemplazar ''foobar'' a ''foo123bar''?

Esto no funciona:

>>> re.sub(r''(foo)'', r''/1123'', ''foobar'') ''J3bar''

Esto funciona:

>>> re.sub(r''(foo)'', r''/1hi'', ''foobar'') ''foohibar''

Creo que es un problema común: número después de / number. ¿Alguien puede darme un punto sobre cómo manejar esto?


La respuesta es:

re.sub(r''(foo)'', r''/g<1>123'', ''foobar'')

Extracto relevante de los documentos:

Además de los escapes de caracteres y las referencias posteriores, tal como se describió anteriormente, / g usará la subcadena que coincida con el nombre del grupo, como se define en la sintaxis (? P ...). / g usa el número de grupo correspondiente; / g <2> es por lo tanto equivalente a / 2, pero no es ambiguo en un reemplazo como / g <2> 0. / 20 se interpretaría como una referencia al grupo 20, no como una referencia al grupo 2 seguido del carácter literal ''0''. La referencia posterior / g <0> sustituye en toda la subcadena emparejada por el RE.