No estoy seguro de que las expresiones regulares sean la mejor solución aquí, pero parecen lo suficientemente lógicas; Simplemente no estoy seguro de cómo implementar esto realmente.Mejor práctica: coincidencia parcial de Regex
Básicamente, deseo que mi usuario pueda escribir un nombre de método y hacer que se analice su validez después de cada entrada de caracteres. He definido un formato de función válido como expresión regular, y es bastante fácil probar si los dos coinciden. El problema es que me gustaría poder hacer una coincidencia parcial, para que el usuario sepa: "Hasta ahora, esto es válido".
Por ejemplo,
+(NSString *)thisIsAValid:(ObjectiveC *)method;
es un método válido. Puede combinarse con una cadena de expresiones regulares simples como
[\+-]\(w+\s*\*?\)\w+....etc...
. Pero me gustaría ser capaz de tener esa misma expresión regular "partido"
+(NSStr
(lo que me di cuenta es una especie de camino hacia atrás de la utilización de expresiones regulares). Todavía no querría que la expresión regular para que coincida con
Q)(NStr
¿Hay una manera de implementar algo como esto con las funciones de expresiones regulares estándar, o tendría que hacer algo más drástico?
¡Muchas gracias! Ustedes son invaluables.
Después de un nuevo pensamiento, supongo que podría hacer mi pregunta un poco más claro (así como un poco más sucinta): Normalmente, se utiliza una expresión regular para buscar un modelo de texto. Es decir, ¿cuántas veces aparece "cat" o "cot" en este párrafo? Deseo hacer lo contrario, buscar una cadena "en" una expresión regular. Es decir, cuánto de esta cadena, comenzando desde el principio coincide con esta expresión regular. En última instancia, me gustaría devolver el índice en el que la cadena deja de coincidir con la expresión regular en cuestión.
Parece que su verdadero objetivo es tener una expresión regular para un patrón que es * * definitivamente no válido, y luego a desencadenar un error cuando ese patrón se compara. Por lo tanto, es posible que desee buscar la coincidencia del complemento del idioma. Tenga en cuenta que el complemento de un idioma regular puede o no ser regular. –
En ese sentido, sugiero tratar de encontrar una buena descripción de la gramática de Objective-C (probablemente una gramática libre de contexto) y ver cuánto puede coincidir con el complemento de la regla de declaración de método con regex. –
+1 para una pregunta interesante!:-) –