Estoy tratando de escribir una expresión regular que devuelve una cadena que está entre paréntesis. Por ejemplo: quiero obtener la cadena que reside entre las cadenas "(" y ")"
I expect five hundred dollars ($500).
volvería
$500
Se encontró expresión regular para obtener una cadena entre dos cadenas en Javascript
Pero soy nuevo con regex. No sé cómo usar '(', ')' en regexp
javascript
regex
string
Okky
fuente
fuente
var regExp = /\(\$([^)]+)\)/;
Respuestas:
Debe crear un conjunto de
\
paréntesis escapados (con ) (que coincidan con los paréntesis) y un grupo de paréntesis regulares que creen su grupo de captura:Descompostura:
\(
: coincide con un paréntesis de apertura(
: comenzar a capturar el grupo[^)]+
: coincide con uno o más)
caracteres no)
: finalizar grupo de captura\)
: paréntesis de cierreAquí hay una explicación visual sobre RegExplained
fuente
/g
bandera global no funcionará como se esperaba.Prueba la manipulación de cadenas:
o regex ( que es algo lento en comparación con lo anterior )
fuente
Portado respuesta de Mr_Green a un estilo de programación funcional para evitar el uso de variables globales temporales.
fuente
Solución simple
Aviso : esta solución se puede usar para cadenas que tienen solo una sola cadena "(" y ")" en esta pregunta.
Demostración en línea (jsfiddle)
fuente
Solo para dígitos después de un signo de moneda:
\(.+\s*\d+\s*\)
debería funcionarO
\(.+\)
para cualquier cosa entre corchetesfuente
)
aparece otro más adelante en la cadena, comoI expect five hundred dollars ($500). (but I'm going to pay).
la codicia del+
capturará mucho más.($500)
y(but I'm going to pay)
ser emparejado pero en dos partidos separados en lugar de ser considerado un solo elemento emparejado? ¡Gracias por adelantado!Para hacer coincidir una subcadena entre paréntesis, excluyendo cualquier paréntesis interno, puede usar
patrón. Vea la demostración de expresiones regulares .
En JavaScript, úsalo como
Detalles del patrón
\(
- un(
char([^()]*)
- Grupo de captura 1: una clase de caracteres negada que coincide con 0 o más caracteres distintos de(
y)
\)
- un)
char.Para obtener la coincidencia completa, tome el valor del Grupo 0, si necesita el texto entre paréntesis, tome el valor del Grupo 1.
Demostración de código JavaScript más actualizada (usando
matchAll
):Demostración de código JavaScript heredado (compatible con ES5):
Mostrar fragmento de código
fuente
()
y sus contenidos, incluso cuando están uno al lado del otro()()
.matchAll
demostración de código JavaScript.fuente
Alternativa:
Es posible reemplazar los corchetes con corchetes o cuadrados si es necesario
fuente
Coincidirá con el primer número que comienza con $ y seguido de ')'. ')' no será parte del partido. El código alerta con el primer partido.
Este código alerta con todos los partidos.
Referencias
busque "? = n" http://www.w3schools.com/jsref/jsref_obj_regexp.asp
busque "x (? = y)" https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp
fuente