Okk*_*kky 154 javascript regex string
我正在尝试编写一个正则表达式,它返回括号之间的字符串.例如:我想获取字符串"("和")"之间的字符串
I expect five hundred dollars ($500).
Run Code Online (Sandbox Code Playgroud)
会回来的
$500
Run Code Online (Sandbox Code Playgroud)
找到正则表达式以在Javascript中获取两个字符串之间的字符串
但我是正则表达式的新手.我不知道如何在regexp中使用'(',')'
go-*_*leg 411
您需要创建一组转义(带\)括号(与括号匹配)和一组创建捕获组的常规括号:
var regExp = /\(([^)]+)\)/;
var matches = regExp.exec("I expect five hundred dollars ($500).");
//matches[1] contains the value between the parentheses
console.log(matches[1]);Run Code Online (Sandbox Code Playgroud)
分解:
\( :匹配一个左括号( :开始捕获组[^)]+:匹配一个或多个非)字符) :结束捕获组\) :匹配结束括号这是RegExplained的直观解释
Mr_*_*een 31
尝试字符串操作:
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]);
}
Run Code Online (Sandbox Code Playgroud)
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));
}
Run Code Online (Sandbox Code Playgroud)
Wik*_*żew 10
要匹配括号内的子字符串,不包括您可以使用的任何内括号
\(([^()]*)\)
Run Code Online (Sandbox Code Playgroud)
图案。见的正则表达式演示。
在 JavaScript 中,像这样使用它
var rx = /\(([^()]*)\)/g;
Run Code Online (Sandbox Code Playgroud)
图案详情
\(- 一个(字符([^()]*)- 捕获组 1:匹配除and之外的任何 0 个或多个字符的否定字符类()\)- 一个)字符。要获得整个匹配,请获取 Group 0 值,如果您需要括号内的文本,请获取 Group 1 值。
最新的 JavaScript 代码演示(使用matchAll):
\(([^()]*)\)
Run Code Online (Sandbox Code Playgroud)
旧版 JavaScript 代码演示(符合 ES5):
var rx = /\(([^()]*)\)/g;
Run Code Online (Sandbox Code Playgroud)
移植Mr_Green对函数式编程风格的回答,以避免使用临时全局变量.
var matches = string2.split('[')
.filter(function(v){ return v.indexOf(']') > -1})
.map( function(value) {
return value.split(']')[0]
})
Run Code Online (Sandbox Code Playgroud)
选择:
\n\nvar str = "I expect five hundred dollars ($500) ($1).";\nstr.match(/\\(.*?\\)/g).map(x => x.replace(/[()]/g, ""));\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x86\x92 (2)\xc2\xa0["$500", "$1"]\nRun Code Online (Sandbox Code Playgroud)\n\n如果需要,可以用方括号或大括号替换括号
\n对于货币符号后的数字:\(.+\s*\d+\s*\)应该有效
或\(.+\)括号内的任何内容
简单的解决方案
注意:此解决方案用于仅具有单个“(”和“)”的字符串,例如此问题中的字符串。
("I expect five hundred dollars ($500).").match(/\((.*)\)/).pop();
Run Code Online (Sandbox Code Playgroud)