ccalbodyid='1002QQ100000000000RV'
and (
(cinventoryid='0001QQ1000000000263B' and vfree1='0001QQ1000000000A9OU')
or (cinventoryid='0001QQ1000000000238W' and vfree1='0001QQ1000000000A9OV')
or (cinventoryid='0001QQ1000000000238W' and vfree1='0001QQ1000000000A9Ol')
or (cinventoryid='0001QQ1000000000238W' and vfree1='0001QQ1000000000A9Om')
or (cinventoryid='0001QQ1000000000238W' and vfree1='0001QQ1000000000A9On')
.....
)
上面这个字符串,or()部分会重复而且重复个数不确定。
现在想把and vfree1=''部分全部替换为一个空字符。vfree1是一个20位长度的字符串。更改后的结果应该是:
and (
(cinventoryid='0001QQ1000000000263B' )
or (cinventoryid='0001QQ1000000000238W' )
or (cinventoryid='0001QQ1000000000238W' )
or (cinventoryid='0001QQ1000000000238W' )
or (cinventoryid='0001QQ1000000000238W' )
.....
)
请问用该怎么改?最好是用正则表达式。
and (
(cinventoryid='0001QQ1000000000263B' and vfree1='0001QQ1000000000A9OU')
or (cinventoryid='0001QQ1000000000238W' and vfree1='0001QQ1000000000A9OV')
or (cinventoryid='0001QQ1000000000238W' and vfree1='0001QQ1000000000A9Ol')
or (cinventoryid='0001QQ1000000000238W' and vfree1='0001QQ1000000000A9Om')
or (cinventoryid='0001QQ1000000000238W' and vfree1='0001QQ1000000000A9On')
.....
)
上面这个字符串,or()部分会重复而且重复个数不确定。
现在想把and vfree1=''部分全部替换为一个空字符。vfree1是一个20位长度的字符串。更改后的结果应该是:
and (
(cinventoryid='0001QQ1000000000263B' )
or (cinventoryid='0001QQ1000000000238W' )
or (cinventoryid='0001QQ1000000000238W' )
or (cinventoryid='0001QQ1000000000238W' )
or (cinventoryid='0001QQ1000000000238W' )
.....
)
请问用该怎么改?最好是用正则表达式。
String s="(cinventoryid='0001QQ1000000000263B' and vfree1='0001QQ1000000000A9OU') or (cinventoryid='0001QQ1000000000263B' and vfree1=''0001QQ1000000000A9On'')";
String regex=" and vfree1=\\'\\d{4}\\w{2}\\d{10}\\w{4}\\'";
s=s.replaceAll(regex, "");
System.out.println(s);
3楼没来得及试,但是貌似复杂了,vfree1就是个20位的字符串,不分数字和字母啥的,可能被我贴出来的值给误导了,呵呵。