Combinación de re.IGNORECASE, re.DOTALL y re.VERBOSE

¿Qué ocurre si quiere utilizar re.VERBOSE para escribir comentarios en su expresión regular pero también quiere utilizar re.IGNORECASE para ignorar las mayúsculas? Por desgracia, la función re.compile() sólo toma un único valor como segundo argumento. Puede sortear esta limitación combinando las variables re.IGNORECASE, re.DOTALL y re.VERBOSE utilizando el carácter barra vertical (|), que en este contexto se conoce como el operador bit a bit o.

Así que si quiere una expresión regular que no distinga entre mayúsculas y minúsculas y que incluya nuevas líneas para que coincida con el carácter de punto, formaría su llamada a re.compile() así

>>> import re
>>> someRegexValue = re.compile('foo', re.IGNORECASE | re.DOTALL)

Si se incluyen las tres opciones en el segundo argumento, el resultado será el siguiente

>>> someRegexValue = re.compile('foo', re.IGNORECASE | re.DOTALL | re.VERBOSE)

Esta sintaxis es un poco anticuada y tiene su origen en las primeras versiones de Python. Los detalles de los operadores de bit a bit están fuera del alcance de este libro, pero consulta los recursos en https://nostarch.com/automatestuff2/ para obtener más información. También puedes pasar otras opciones para el segundo argumento; son poco comunes, pero también puedes leer más sobre ellas en los recursos.

Deja una respuesta