[英]Regular Expression to remove everything but characters and numbers between Square brackets
我用了
value.replaceAll("[^\\w](?=[^\\[]*\\])", "");
在以下情况下可以正常工作
[a+b+c1 &$&$/]+(1+b&+c&)
产生:
[abc1]+(1+b&+c&)
但如果跟随字符串,则仅在第一轮中删除方括号内的方括号
[a+b+c1 &$&$/[]]+(1+b&+c&)
产生:
[a+b+c1 &$&$/]+(1+b&+c&)
将我的评论翻译成答案
您可以使用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&)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.