LEER DETENIDAMENTE: Esto es un poco inusual y tendrá la tentación de decir cosas como "que no es cómo usar una expresión regular" o "amigo, simplemente use String.SubString() ", etc ...Regex para obtener texto ENTRE dos caracteres
tengo una necesidad de escribir una expresión regular (por usar un método de pre-existente) que coincide con el texto entre corchetes, pero no el rizado apoyos a sí mismos.
Por ejemplo: "{} MatchThisText" Y "La la la MatchThisText {} la la la ..."
caso de que ambos partidos: "MatchThisText"
Someone asked this exact question a year ago, y él Obtuve un montón de soluciones para las expresiones regulares que coincidirán con las llaves, además de "MatchThisText", lo que da como resultado una coincidencia de "{MatchThisText}", que no es lo que él (o yo) necesitamos.
Si alguien puede escribir un Regex que realmente coincida solo con los caracteres ENTRE las llaves, realmente lo agradecería. Debe permitir cualquier valor ASCII, y debe detener la coincidencia en el PRIMER intervalo de cierre.
Por ejemplo: "{retailCategoryUrl}/{filtros}"
debe coincidir: retailCategoryUrl y filtros
Pero no coinciden: "retailCategoryUrl}/{filtros" (Todo menos las llaves exteriores)
Oye, esto es realmente complicado para mí, así que por favor, perdonen la pregunta si esto es trivial para algunos de ustedes.
GRACIAS!
Muy fácil (requiere agrupación, pero honestamente, esta es una característica bastante fundamental), a menos que desee tener en cuenta los apoyos anidados "correctamente" (por ejemplo, como analizadores completos), en cuyo caso es simplemente imposible (excepto cuando se usan extensiones no-regex-y que algunas implementaciones, por ejemplo, NET, tienen). – delnan
Necesitaremos más contexto, ya que la solución probablemente involucraría a los operadores mirar hacia atrás y mirar hacia adelante, así que dependa del dialecto de la expresión regular que esté usando. –
'{(\ w +)}' - los corchetes denotan un grupo, del cual puedes obtener el contenido. –