Articles of regex

Coincidencia de partes de número de versión con expresiones regulares

Estoy tratando de hacer coincidir las partes de un número de versión (Major.Minor.Build.Revision) con expresiones regulares de C #. Sin embargo, soy bastante nuevo para escribir Regex e incluso usar Expresso está demostrando ser un poco difícil. En este momento, tengo esto: (?\d*)\.(?\d*)\.(?\d*)\.(?\d*) Esto funciona, pero requiere que cada parte del número de versión exista. […]

Búsqueda de expresiones regulares multilínea en archivo completo

He encontrado un montón de ejemplos para reemplazar texto en archivos usando expresiones regulares. Sin embargo, todo se reduce a dos versiones: 1. Iterar sobre todas las líneas en el archivo y aplicar expresiones regulares a cada línea única 2. Cargar el archivo completo. No. 2 No es posible usar “mis” archivos, son aproximadamente 2GiB […]

Algoritmo para encontrar cadenas que un Regex específico coincidirá

Dado un patrón de expresiones regulares, estoy tratando de encontrar una cadena que coincida. Similar a cómo Django los revierte, pero en C #. ¿Hay bibliotecas C # pre-hechas que hacen esto? Edición: Mover este proyecto al código de Google muy pronto. Resultados de la prueba actual ^abc$ > abc : pass \Aa > a […]

¿Por qué Regex CompileToAssembly ofrece un rendimiento más lento que las expresiones regulares comstackdas y las expresiones regulares interpretadas?

Estoy usando el siguiente código para probar el rendimiento de CompileToAssembly contra expresiones regulares comstackdas, pero los resultados no son apropiados. Por favor, hágamelo saber lo que me falta. ¡¡¡Gracias!!! static readonly Regex regex = new Regex(@”(stats|pause\s?(all|\d+(\,\d+)*)|start\s?(all|\d+(\,\d+)*)|add\s?time\s?(all|\d+(\,\d+)*)(\s\d+)|c(?:hange)?\s?p(?:asskey)?|close)(.*)”, RegexOptions.Compiled); static readonly Regex reg = new Regex(@”(stats|pause\s?(all|\d+(\,\d+)*)|start\s?(all|\d+(\,\d+)*)|add\s?time\s?(all|\d+(\,\d+)*)(\s\d+)|c(?:hange)?\s?p(?:asskey)?|close)(.*)”); static readonly Regex level4 = new DuplicatedString(); static void Main() […]

Código C # para generar cadenas que coincidan con una expresión regular

Yo uso expresiones regulares para validar la entrada del usuario. Ahora puedo configurar la expresión regular y así ayudaría al usuario a ver un ejemplo de cómo se debe formatear una entrada determinada. ¿Es posible generar algunas cadenas que coincidan con una expresión regular arbitraria? ¿Y hay incluso una implementación usable en algún lugar? ACTUALIZACIÓN: […]

¿Alguien ha implementado un analizador Regex y / o Xml alrededor de StringBuilders o Streams?

Estoy creando un cliente de prueba de estrés que martilla los servidores y analiza las respuestas utilizando tantos hilos como el cliente puede reunir. Constantemente me encuentro estrangulado por la recolección de basura (y / o la falta de ella), y en la mayoría de los casos, se trata de cadenas que estoy creando una […]

¿Qué es más rápido: Regex o operaciones de cadena?

¿Cuándo debo usar Regex sobre operaciones de cadena y viceversa solo con respecto al rendimiento?

Regex.Matches c # comillas dobles

Tengo este código a continuación que funciona para comillas simples. Encuentra todas las palabras entre las comillas simples. ¿Pero cómo modificaría la expresión regular para trabajar con comillas dobles? Las palabras clave provienen de una publicación de formulario asi que keywords = ‘peace “this world” would be “and then” some’ // Match all quoted fields […]

Combina eficientemente MatchCollections en .Net Regex

En el ejemplo simplificado, hay 2 expresiones regulares, una distingue entre mayúsculas y minúsculas, la otra no. La idea sería crear de manera eficiente una colección IEnumerable (ver “combinada” a continuación) combinando los resultados. string test = “abcABC”; string regex = “(?a)|(?b)|(?c)]”; Regex regNoCase = new Regex(regex, RegexOptions.IgnoreCase); Regex regCase = new Regex(regex); MatchCollection matchNoCase […]

.NET Core 2.1 – Regex en bucle 200x más lento que 2.0 (3x en un simple punto de referencia)

Tengo el siguiente regex: var regex = new Regex( @”^ActiveMQ[\d\.-]*$”, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); Se ejecuta sobre ~ 1000 cadenas (llamada IsMatch ). En .NET Core 2.0 toma alrededor de 10ms . Después de migrar a .NET Core 2.1, tarda más de 2 seconds en los mismos datos. ¿Tienes idea de lo que está […]