求问如何用正则表达式匹配所有刚好被括号括起来的内容比如"(foo) )so)))me.fdsafjg((bar) (test)"希望匹配完后能得到的结果是:foo,bar,test或者能解决简单一点的情况比如"(foo) (bar)"匹配完后是foo,bar

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 19:14:03
求问如何用正则表达式匹配所有刚好被括号括起来的内容比如

求问如何用正则表达式匹配所有刚好被括号括起来的内容比如"(foo) )so)))me.fdsafjg((bar) (test)"希望匹配完后能得到的结果是:foo,bar,test或者能解决简单一点的情况比如"(foo) (bar)"匹配完后是foo,bar
求问如何用正则表达式匹配所有刚好被括号括起来的内容
比如"(foo) )so)))me.fdsafjg((bar) (test)"
希望匹配完后能得到的结果是:
foo,bar,test
或者能解决简单一点的情况
比如"(foo) (bar)"
匹配完后是
foo,bar
我写的例子是三个,但是希望实现的功能是任意个,如果不能那也行,至少实现如下情况
(foo1)(foo2)
希望能每做一次匹配就至少出来一个,比如第一次匹配完了是foo1,这样我去掉(foo1)再拿到佛o也可以,但是我每次匹配出来就成了foo1)(foo2,不是想要的效果

求问如何用正则表达式匹配所有刚好被括号括起来的内容比如"(foo) )so)))me.fdsafjg((bar) (test)"希望匹配完后能得到的结果是:foo,bar,test或者能解决简单一点的情况比如"(foo) (bar)"匹配完后是foo,bar
.*\(([^\(\)]*)\).*\(([^\(\)]*)\).*\(([^\(\)]*)\).* 这个是用来匹配用的
\1,\2,\3 匹配的结果
解释一下匹配语句
因为是匹配3哥数据,所以写了三个一样的 .*\(([^\(\)]*)\)
我就解释一个,其它的相同
第一个 .*\( 表示匹配 ( 前面的所有数据,不管你是字符串还是数字等所以用 .点号
\(表示匹配到符号(
第二个 ([^\(\)]*) 括号里面的用来取数据就是后面的 \1 \2等的内容
[^\(\)] 这个表示匹配到左括号(后,后续知道匹配右括号)后,中间不允许出()左右括号字符串
如果你还不想匹配其他数据比如,号 可以改成[^\(\),]
* 表示括号内的数据个数不限定
匹配最后加入.* 表示匹配完三个数据后,后面的随便是什么数据都不要了
这个是替换用的
第三个\1,\2,\3 ,分别表示第一 第二 第三哥括号内的数据