Xes*_*n J 6 java regex parsing
我用了
value.replaceAll("[^\\w](?=[^\\[]*\\])", "");
Run Code Online (Sandbox Code Playgroud)
如果在下列情况下,它可以正常工作
[a+b+c1 &$&$/]+(1+b&+c&)
Run Code Online (Sandbox Code Playgroud)
生产:
[abc1]+(1+b&+c&)
Run Code Online (Sandbox Code Playgroud)
但是在跟随字符串的情况下,它只删除第一次运行中方括号内的方括号
[a+b+c1 &$&$/[]]+(1+b&+c&)
Run Code Online (Sandbox Code Playgroud)
生产:
[a+b+c1 &$&$/]+(1+b&+c&)
Run Code Online (Sandbox Code Playgroud)
将我的评论转化为答案
您可以在 Java 中使用这个简单的解析来进行替换:
String s = "[a+b+c1 &$&$/[]]+(1+b&+c&)";
int d=0;
StringBuilder sb = new StringBuilder();
for (char ch: s.toCharArray()) {
if (ch == ']')
d--;
if (d==0 || Character.isAlphabetic(ch) || Character.isDigit(ch))
sb.append(ch);
if (ch == '[')
d++;
}
System.out.println(sb);
//=> [abc1]+(1+b&+c&)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |