如何使Java Regex匹配除指定模式之外的所有内容

时间:2013-09-18 05:27:47

标签: java regex

我正在尝试匹配整个字符串中除垃圾值之外的所有内容。我尝试使用的模式是:

    ^.*(?!\w|\s|-|\.|[@:,]).*$

我一直在测试regexPlanet上的模式,这似乎与整个字符串匹配。我使用的输入字符串是:

    Vamsi///#k03@g!!!l.com 123**5

我怎样才能让它只匹配除模式之外的所有内容,我想替换任何与空格或我选择的特殊字符匹配的字符串。

1 个答案:

答案 0 :(得分:5)

编写的模式应该与整个字符串匹配。

^ - 字符串的开头。
.* - 零个或多个任何字符。
(?!\w|\s|-|\.|[@:,]) - 对某些角色采取负面预测 .* - 零个或多个任何字符。
$ - 字符串结尾。

如果您只想匹配不是提供的字符之一的字符,请尝试简单:

[^-\w\s.@:,]

[^...]是一个否定的字符类,它将匹配括号中未提供的任何字符。有关详细信息,请参阅this

Test