比如(id,name,salary,email),([(].+[)])我这样写是不可以的,我尝试过\\(,貌似也不可以。
你好!可以做成这样吗? 麻烦帮忙改一下代码,谢谢!
这样的结果是这样的:
0
(id,name,salary,email)
(0,ejdef,2,fefefe)
但不是我想要的啊
我不明白你想要什么啊, 你不是说要括号的么,不都是括号么
追问匹配第一个满足括号的即:(id,name,salary,email),然后通过group下标可以分成三部分,分别是“(”,id,name,salary,email,和“)”。
就像如果用这个“(insert into)(.+)([(])”,上面的程序就可以把insert into employee(匹配出来,然后还可以通过下标,分成insert into,employee,(,三部分
不明白,怎么又扯上insert into 了
追问http://pan.baidu.com/s/1hq3ePY8
帮忙看看这个例子,就是把insert into employee(的效果,变成(id,name,salary,email)的效果。
String RegExp="^\(.*\)$ ";这是什么,报错。。
追答"\\(.*\\) "
java里面 \ 是转义字符 需要写两次。
另外,如果任意字符要匹配1次以上,.* 也可以换成 .+
如果括号中的内容需要排除括号的话,可以像下面这么写
"\\([^\\(\\)]*\\) "
我手头没有java环境,希望能帮到你。
不可以
追答我的是可以的
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)
你好!可以做成这样吗? 麻烦帮忙改一下代码,谢谢!