我需要删除给定字符串中的所有字符,除了应该留下的几个字符。如何用regexp做到这一点?
简单测试:不应删除字符[1,a,*],所有其他字符应来自字符串“asdf123 **”。
答案 0 :(得分:22)
在集合中有^。
您应该可以执行以下操作:
text = text.replaceAll("[^1a*]", "");
完整样本:
public class Test
{
public static void main(String[] args)
{
String input = "asdf123**";
String output = input.replaceAll("[^1a*]", "");
System.out.println(output); // Prints a1**
}
}
答案 1 :(得分:9)
在[
和]
内使用时,^
(插入符号)是not
运算符。
它的用法如下:
"[^abc]"
除了a
b
或c
之外,它将匹配任何字符。
答案 2 :(得分:1)
答案 3 :(得分:0)
在字符类中,^不是。所以
[^1a\*]
将匹配除此之外的所有字符。
答案 4 :(得分:0)
您希望匹配除[asdf123 *]以外的所有字符,请使用^
答案 5 :(得分:0)
在Java正则表达式中没有像Perl中那样的“not”运算符。