Pregunta

Tengo una lista de wild card basado en la fraseología en un archivo XML.Si la cadena de entrada coincide con el patrón presente en el documento XML, a continuación, una acción específica sería tomado.

Me hizo encontrar el enfoque mencionado aquí http://www.codeproject.com/KB/recipes/wildcardtoregex.aspx pero en ese caso, necesito crear un objeto de RegEx para cada entrada en el XML de la que estoy tratando de evitar.

Déjame saber ¿hay alguna manera mejor de hacer comodín de búsqueda en .net

¿Fue útil?

Solución

Si desea evaluar cada modelo de documento para el partido contra la cadena de entrada, tendrás que crear una Expresión regular para cada modelo, como usted menciona.No hay acceso directo.

Supongo que usted se preocupe acerca de la perfomance.Estás seguro de que es un problema?Si es así, usted debe tratar de encontrar un enfoque diferente totalmente.

Vas a coincidir con muchas de las cadenas de entrada?En ese caso, usted debe mantener sus expresiones regulares (en una lista, por ejemplo) en lugar de la creación de cada vez.Expresiones regulares pueden ser reutilizados.

De lo contrario, no puedo ver el gran problema con el enfoque propuesto.

Otros consejos

Ha pasado mi hora de dormir, así que puede sonar extravagante en esta respuesta.

A mí me parece que tiene cosas creado por el camino equivocado:Estás coincidencia de una cadena de entrada con una lista de patrones.Lógicamente, debe ser coincidente de cada patrón en la lista contra la cadena de entrada y la determinación de un partido.Debe ser bastante fácil de construir una matriz de patrones de Regex al analizar el archivo XML.A continuación, se puede recorrer la matriz y que coincida con cada Regex en contra de su cadena de entrada.

Además, ¿por Qué necesitan los comodines en todo?Los comodines puede ser considerado como un subconjunto de Expresiones regulares y, por lo que ya tiene toda la funcionalidad de comodín encapsulado dentro del objeto de Regex.

Dicho esto, más datos sobre el tipo de entrada/comodines puede resultar de gran ayuda para entender su pregunta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top