如何解决在Android上使用正则表达式验证字符串
| 我希望我的字符串不包含*
,;
和$
。我用这个代码
private static boolean IsMatch(String s,String pattern) {
try {
Pattern patt = Pattern.compile(pattern);
Matcher matcher = patt.matcher(s);
return matcher.matches();
} catch (RuntimeException e) {
return false;
}
}
String regex =\"[^*;$]\";
System.out.println(IsMatch(url,regex));
但是此方法始终返回false。
谁能告诉我是什么问题
解决方法
尝试对正则表达式使用using4ѭ。如果您的字符串不包含
*
,;
和$
中的任何一个,它将返回true。我假设您希望您的正则表达式匹配不包含任何这些字符的字符串,因为您已经在[
和]
中使用^
了。
,试试这个正则表达式[^\\\\*;\\\\$]*
。 *和$是正则表达式中的特殊字符。
编辑:如果您使用的是Pattern
,则应使用此正则表达式:String regex = \"^[^\\\\*;\\\\$]*$\"
,因为您要匹配整个字符串。
作为替代方案,您可以只使用url.matches(\"[^\\\\*;\\\\$]*\");
而不需要第一个^和最后一个$,因为该方法始终尝试匹配整个字符串。
,您需要取出^和$,因为它们可以出现在字符串的任何位置。
String regex = \"[\\*,;\\$]\";
请注意,反斜杠将$符号转义。编辑:和*符号。
,您将需要转义一些像这样的字符[\\ ^ *; \\ $]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。