我需要滚动一个List并删除包含一些特殊字符的所有字符串.使用RegEx我能够删除以这些特殊字符开头的所有字符串但是,如何找到这个特殊字符串是否在字符串的中间?
例如:
Pattern.matches("[()<>/;\\*%$].*", "(123)")
Run Code Online (Sandbox Code Playgroud)
返回true,我可以删除此字符串
但它不适用于这种字符串:12(3).
使用\*来查找字符串中出现"*"字符是否正确?
谢谢您的帮助!安德里亚
你是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)