¿Alguno de ustedes conoce una manera fácil/limpia de encontrar una subcadena dentro de una cadena mientras ignora algunos caracteres especificados para encontrarla? Creo que un ejemplo podría explicar mejor las cosas:Buscar subcadena ignorando los caracteres especificados
- cadena: "Hola, -this- es una cadena"
- subcadena para encontrar: "Hola este"
- caracteres de ignorar: "" y "-"
- encuentra la subcadena, resultado: "Hola, -esta"
El uso de Regex no es un requisito para mí, pero agregué la etiqueta porque parece relacionada.
Actualización:
Para hacer más clara la exigencia: Necesito la subcadena que resulta con los caracteres ignorados, y no sólo una indicación de que existe la subcadena dada.
Actualización 2: Algunos de ustedes están leyendo demasiado en el ejemplo, lo siento, voy a dar otro escenario que debería funcionar:
- cadena:?" Un & 3/3/C) 412 & "
- subcadena de encontrar: "A41"
- caracteres de ignorar:" &", "/", "3", "C", ")"
- conocer la subcadena, resultado: "A & 3/3/C) 41"
Y como un bono (no se requiere per se), será genial si tampoco es seguro suponer que la subcadena para encontrar no tendrá los caracteres ignorados en ella, por ejemplo: dado el último ejemplo que deberíamos poder hacer:
- subcadena para encontrar: "A3C412 & "
- caracteres de ignorar:" & " "/", "3", "C", ")"
- conocer la subcadena, resultado:" A & 3/3/C) 412 & "
Lo siento si no estaba claro antes, o aún no lo estoy :).
Actualización 3:
Gracias a todos los que ayudaron!, Esta es la aplicación que estoy trabajando por ahora:
Una aquí hay algunas pruebas:
estoy usando algunos No incluyo métodos de extensión personalizados, pero creo que deberían ser autoexplicativos (los agregaré si lo desea) He tomado muchas de sus ideas para la implementación y las pruebas, pero estoy dando la respuesta a @PierrOz porque fue uno de los primeros y me apuntó en la dirección correcta. Siéntase libre de seguir dando sugerencias como soluciones alternativas o comentarios sobre el estado actual de la impl. Si te gusta.
@Fredy echar un vistazo a mi respuesta actualizada que, si he entendido correctamente, debe cubrir sus escenarios actualizados. –
@Fredy: ¿es seguro concluir que espera que tanto la cadena de entrada como la cadena de búsqueda estén limpias de los caracteres no deseados antes de realizar la búsqueda? Si es así, a continuación proporcioné una solución usando RegEx y búsqueda de cadenas. –
@Ahmad - Me gusta su actualización, voy a tomar algunas ideas desde allí, gracias. –