Javascript 使用正则表达式获取括号内的字符串,删除括号
我有这两条线Javascript 使用正则表达式获取括号内的字符串,删除括号,javascript,regex,string,Javascript,Regex,String,我有这两条线 var str1 = "this is (1) test"; var str2 = "this is (2) test"; 并希望编写一个正则表达式来提取括号内的内容,如“1”和“2”中所示,以生成如下字符串 var str3 = "12"; 现在我有一个正则表达式,它也返回括号 var re = (/\((.*?)\)/g); var str1 = str1.match(/\((.*?)\)/g); var str2 = str2.match(/\((.*?)\)/g);
var str1 = "this is (1) test";
var str2 = "this is (2) test";
并希望编写一个正则表达式来提取括号内的内容,如“1”
和“2”
中所示,以生成如下字符串
var str3 = "12";
现在我有一个正则表达式,它也返回括号
var re = (/\((.*?)\)/g);
var str1 = str1.match(/\((.*?)\)/g);
var str2 = str2.match(/\((.*?)\)/g);
var str3 = str1+str2; //produces "(1)(2)"
尝试:
这将捕获括号内一个或多个数字的任意数字
例如:
编辑:在本例中,您将看到replace字段只有数字,而没有括号——这是因为捕获组$1
只捕获数字本身
编辑2:
试着这样做:
var str1 = "this is (1) test";
var str2 = "this is (2) test";
var re = /[a-zA-Z0-9\s]+\((\d+)\)[a-zA-Z0-9\s]+/;
str1 = str1.replace(re, "$1");
str2 = str2.replace(re, "$1");
console.log(str1, str2);
像这样
Javascript
var str1 = "this is (1) test",
str2 = "this is (2) test",
str3 = str1.match(/\((.*?)\)/)[1] + str2.match(/\((.*?)\)/)[1];
alert(str3);
在
看
(x) 匹配x并记住匹配。这些被称为捕获
括号
例如,/(foo)/匹配并记住“foo bar”中的“foo”
可以从结果数组的元素中调用匹配的子字符串
,…,[n]或从预定义的RegExp对象的属性$1,
…9美元
捕获组将受到性能惩罚。如果你不需要
要调用的匹配子字符串,首选非捕获括号
(见下文)
试试这个
var re = (/\((.*?)\)/g);
var str1 = str1.match(/\((.*?)\)/g);
var new_str1=str1.substr(1,str1.length-1);
var str2 = str2.match(/\((.*?)\)/g);
var new_str2=str2.substr(1,str2.length-1);
var str3 = new_str1+new_str2; //produces "12"
的可能副本应为str2.substr(1,str2.length-2)
var re = (/\((.*?)\)/g);
var str1 = str1.match(/\((.*?)\)/g);
var new_str1=str1.substr(1,str1.length-1);
var str2 = str2.match(/\((.*?)\)/g);
var new_str2=str2.substr(1,str2.length-1);
var str3 = new_str1+new_str2; //produces "12"