使用regex查找带有特殊字符的字符串

And*_*rdi 0 java regex

我需要滚动一个List并删除包含一些特殊字符的所有字符串.使用RegEx我能够删除以这些特殊字符开头的所有字符串但是,如何找到这个特殊字符串是否在字符串的中间?

例如:

Pattern.matches("[()<>/;\\*%$].*", "(123)") 
Run Code Online (Sandbox Code Playgroud)

返回true,我可以删除此字符串

但它不适用于这种字符串:12(3).

使用\*来查找字符串中出现"*"字符是否正确?

谢谢您的帮助!安德里亚

fge*_*fge 5

你是Java命名不好的另一个受害者,.matches()它试图匹配整个输入并与正则表达式匹配的定义相矛盾.

你想要的是匹配一个角色()<>/;\\*%$.使用Java,您需要创建一个Pattern,Matcher从中Pattern使用并.find()在此匹配器上使用:

final Pattern p = pattern.compile("[()<>/;\\*%$]");

final Matcher m = p.matcher(yourinput);

if (m.find()) // match, proceed
Run Code Online (Sandbox Code Playgroud)