solo - match javascript ejemplo
Expresión regular para obtener una cadena entre paréntesis en Javascript (6)
Intento escribir una expresión regular que devuelva una cadena entre paréntesis. Por ejemplo: quiero obtener la cadena que se encuentra 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 la expresión regular
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:
var regExp = //(([^)]+)/)/;
var matches = regExp.exec("I expect five hundred dollars ($500).");
//matches[1] contains the value between the parentheses
console.log(matches[1]);
Descompostura:
-
/(
: coincide con un paréntesis de apertura -
(
: comenzar a capturar grupo -
[^)]+
: coincide uno o más caracteres que no son)
-
)
: grupo de captura final -
/)
: paréntesis de cierre de coincidencia
Aquí hay una explicación visual en RegExplained
Para solo dígitos después de un signo de moneda: /(.+/s*/d+/s*/)
debería funcionar
O /(.+/)
Para cualquier cosa entre corchetes
Prueba la manipulación de cadenas:
var txt = "I expect five hundred dollars ($500). and new brackets ($600)";
var newTxt = txt.split(''('');
for (var i = 1; i < newTxt.length; i++) {
console.log(newTxt[i].split('')'')[0]);
}
o regex ( que es algo lento comparado con el anterior )
var txt = "I expect five hundred dollars ($500). and new brackets ($600)";
var regExp = //(([^)]+)/)/g;
var matches = txt.match(regExp);
for (var i = 0; i < matches.length; i++) {
var str = matches[i];
console.log(str.substring(1, str.length - 1));
}
Solución simple
Aviso : esta solución se usa para una cadena que solo tiene una sola cadena "(" y ")" en esta pregunta.
("I expect five hundred dollars ($500).").match(//((.*)/)/).pop();
Transmitió la respuesta de Mr_Green a un estilo de programación funcional para evitar el uso de variables globales temporales.
var matches = string2.split(''['')
.filter(function(v){ return v.indexOf('']'') > -1})
.map( function(value) {
return value.split('']'')[0]
})
var str = "I expect five hundred dollars ($500) ($1).";
var rex = //$/d+(?=/))/;
alert(rex.exec(str));
Coincidirá con el primer número que comience con $ y seguido por '')''. '')'' no será parte del partido. El código alerta con la primera coincidencia.
var str = "I expect five hundred dollars ($500) ($1).";
var rex = //$/d+(?=/))/g;
var matches = str.match(rex);
for (var i = 0; i < matches.length; i++)
{
alert(matches[i]);
}
Este código alerta con todas las coincidencias.
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