关于Java正则表达式,一对括号里面加任意字符的正则表达式怎么表示?

比如(id,name,salary,email),([(].+[)])我这样写是不可以的,我尝试过\\(,貌似也不可以。... 比如(id,name,salary,email),([(].+[)])我这样写是不可以的,我尝试过\\(,貌似也不可以。 展开
 我来答
yugi111
2014-03-14 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
String s1 = "abc1(id,name,salary,email)12()7**)";
String r1 = "[\\s\\S]*(\\([^\\)]+\\))[\\s\\S]*";
System.out.println(s1.matches(r1));
System.out.println(s1.replaceAll(r1, "$1"));
更多追问追答
追问

  你好!可以做成这样吗? 麻烦帮忙改一下代码,谢谢!


       

追答
String sql = "insert into employee(id, name, salary, email) values (0, ejdef, 2, fefefe)";
String rx = "\\([^\\)]+\\)";
Pattern pattern2 = Pattern.compile(rx);
Matcher matcher2 = pattern2.matcher(sql);
while(matcher2.find())
{
    System.out.println(matcher2.group());
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
09001413
2014-03-14
知道答主
回答量:22
采纳率:0%
帮助的人:14万
展开全部
^\(.*\)$

看看。

为什么加中括号? 中括号一般用来代表一个字符集吧
追问
String RegExp="^\(.*\)$ ";这是什么,报错。。
追答
"\\(.*\\) "

java里面 \ 是转义字符 需要写两次。

另外,如果任意字符要匹配1次以上,.* 也可以换成 .+

如果括号中的内容需要排除括号的话,可以像下面这么写
"\\([^\\(\\)]*\\) "

我手头没有java环境,希望能帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laofeng429
2014-03-14
知道答主
回答量:12
采纳率:0%
帮助的人:4万
展开全部
\\([\\w\\W&&[^()]]+\\)
更多追问追答
追问
不可以
追答
我的是可以的 
public static void main(String[] args) {
String regex="\\([\\w\\W&&[^()]]+\\)";
String input="(d)fsasfaa(dsf dasfkljdfkl)ddd(sf)dasf";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(input);
while(m.find()){
System.out.println("匹配子串:"+m.group(0));
}
}

结果:
匹配子串:(d)
匹配子串:(dsf dasfkljdfkl)
匹配子串:(sf)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式