2009-07-10 8 views
6

Acabo de leer esto interesting article sobre los detalles de implementación para varios idiomas que admiten expresiones regulares.¿Cómo se implementan las expresiones regulares en .NET?

Describe una implementación alternativa de expresiones regulares que utiliza autómatas finitos no deterministas (NFA) frente a deterministas (DFA). Afirma que las implementaciones de seguimiento de DFA (la versión utilizada en Perl, Java y otros) son susceptibles de un rendimiento muy lento en algunas expresiones regulares particularmente "patológicas". (grep, awk y Tcl todavía usan DFA, pero de alguna manera son exponencialmente más rápidos)

No hace referencia al .NET framework, pero me gustaría saber cómo se implementan las expresiones regulares .NET (C# en particular), y cómo se comparan en términos de rendimiento.

Editar:

¿Puedo suponer ya que el artículo de la contestadora menciona .NET no dando marcha atrás, que va a estar a la par con Perl y Java?

+2

FYI, solo hay expresiones .NET regulares, no expresiones regulares C# y VB.NET. –

+0

Gracias John - Tenía el presentimiento de que era una única base de código, pero no estaba seguro de si C# expuso algo que VB no tenía. –

+1

Just offtopic pero relacionado con el comentario: afaik, .NET está codificado en C#. : P Pero puedo ver donde alguien se confundiría por eso. – Zack

Respuesta

10

Hay impresionante redacción here. Aprovecha el hecho de que puede acceder al código del framework .NET y ver qué hace, y explica cómo funciona todo. Es una excelente lectura.

+0

... escrito por el habitante de SO Jeff Moser. –

+0

Gracias por la conexión. Me pregunto si originalmente encontré el enlace a través de SO ... – ojrac

Cuestiones relacionadas