有这样的字符串
“(中国),(中国,大陆),(香港)”
使用(.*)会全部匹配,但希望得到是括号里面的字符串
求大神 给个逐个匹配的正则表达式
正则主要是用来处理英文字符。个人感觉这个不适合使用正则来解决这个问题。字符串分割函数可能更适合。。。。
下面是我使用js的示范的一段代码
<script> var str="(中国),(中国,大陆),(香港)"; var rep_str=str.replace(/(\(\))/g,''); var A_str=rep_str.split(",") console.log(A_str); </script>
/\((.+?)\)/ 这里主要需要注意的是贪婪模式
var str = "(中国),(中国,大陆),(香港)"; var reg = /(\(.*?\))/g; alert(str.match(reg).join("\n"));
这是用回溯的正则的java实现:
String input="(你好)(中国),(中国,大陆),(香港)";
正则主要是用来处理英文字符。个人感觉这个不适合使用正则来解决这个问题。字符串分割函数可能更适合。。。。
下面是我使用js的示范的一段代码
<script>
var str="(中国),(中国,大陆),(香港)";
var rep_str=str.replace(/(\(\))/g,'');
var A_str=rep_str.split(",")
console.log(A_str);
</script>
把()repace掉,然后用, split就行
/\((.+?)\)/
这里主要需要注意的是贪婪模式
这是用回溯的正则的java实现:
String input="(你好)(中国),(中国,大陆),(香港)";
String regexp="(?<=\\().*?(?=\\))";Pattern p = Pattern.compile(regexp);
Matcher m = p.matcher(input);
while(m.find()) {
System.out.println(m.group());
}