正则表达式中没有 (!) 运算符吗?

2022-09-02 09:07:41

我需要从给定的字符串中删除所有字符,除了应该留下的几个字符。如何使用正则表达式执行此操作?

简单测试:字符[1,a,*]不应该被删除,所有其他应该从字符串“asdf123**”中删除。


答案 1

有:^在一个集合中。

您应该能够执行如下操作:

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**
    }
}

答案 2

当在内部使用时,(插入记号)是操作员。[]^not

它是这样使用的:

"[^abc]"

这将匹配除 或 以外的任何字符。abc