¿Cómo conseguir que el lookbehind sea codicioso?
En este caso, quiero que el lookbehind consuma: si está presente..NET Regex Lookbehind Not Greedy
m = Regex.Match("From: John", @"(?i)(?<=from:)....");
// returns ' Jon' what I expect not a problem just an example
m = Regex.Match("From: John", @"(?i)(?<=from:?)....");
// returns ': Jo'
// I want it to return ' Jon'
He encontrado un trabajo en torno
@"(?i)(?<=\bsubject:?\s+).*?(?=\s*\r?$)"
Mientras pones un poco después de la afirmativa? luego se saca el codicioso opcional del juego. Por la misma razón, tuve que poner $ en la mirada hacia adelante.
Pero si necesita terminar con un codicioso opcional, entonces tiene que ir con la respuesta aceptada a continuación.
Poco detallado pero funciona y eso funciona para mí. Gracias. Considero un error que el aspecto detrás no sea codicioso. – Paparazzi
@Blam: Acabo de darme cuenta de que esto se puede simplificar para que sea menos detallado. Actualicé mi publicación. – porges
No falla el compilador, por favor, corrija o regrese a la respuesta original rSubject = new Regex (@ "(? I) (? <= Subject (: | (?!:))) ........)"); – Paparazzi