.NET Regex punto carácter coincide con retorno de carro?

Cada sabor de expresión regular que he usado siempre ha tenido el "." el carácter coincide con todo menos con una nueva línea (\ r o \ n) ... a menos que, por supuesto, habilite la marca de una sola línea.

Entonces, cuando probé el siguiente código de C #, me sorprendió:

Regex rgx = new Regex(".");
if (rgx.Match("\r\n").Success)
  MessageBox.Show("There is something rotten in the state of Redmond!");

Mostró el mensaje. Solo para asegurarme de que no me estaba volviendo loco, probé el siguiente código JavaScript:

if (/./.test("\r\n"))
  alert("Something's wrong with JavaScript too.");

El JavaScript no mostró el mensaje, lo que significa que funciona exactamente como debería.

Aparentemente, el "." El carácter en .NET coincide con el carácter "\ r". Revisé eldocumentación para ver si mencionan algo al respecto:

Comodín: coincide con cualquier carácter único, excepto \ n.

Wow ... desde cuando tiene un sabor Regexsiempre ¿El punto coincide con un retorno de carro? Pensarías que .NET se comportaría como el resto de los sabores Regex ... especialmente porque está en un entorno Windows que usa "\ r \ n" como delimitadores de línea.

¿Hay alguna bandera / configuración que pueda habilitar para que funcione como lo hace en otros sabores Regex? ¿Hay alguna solución alternativa que no implique reemplazar todo. personajes con[^\r\n]?

Respuestas a la pregunta(5)

Su respuesta a la pregunta