我正在搜索一个正则表达式,我可以用来检查用户输入是否包含指定列表中的特殊字符。
以下是我尝试编写的正则表达式不允许使用的特殊字符:^[`~!@#$%^&*()_+={}\[\]|\\:;“’<,>.?๐฿]*$
我去了https://regex101.com/,我期待以下输入匹配,但这不是原因:
127 elmer road ??<>()
所以在android java(但是一个是任何)我写了以下函数,但它也总是返回true。如何过滤所有这些特殊字符。我想要一个函数,如果给定的字符串不匹配,则返回true。
public boolean isValid( EditText et) {
String string = et.getText().toString();
boolean isValid = true;
final Pattern sPattern
= Pattern.compile("^[`~!@#$%^&*()_+={}\\[\\]|\\\\:;“’<,>.?๐฿]*$");
isValid= !sPattern.matcher(string).matches();
return isValid;
}
更新:我也尝试了以下内容:
答案 0 :(得分:2)
我想要一个函数,如果给定的字符串不匹配,则返回true。
您可以否定字符集。 (注意方括号内的^
符号)。对于不包含任何这些特殊字符的字符串,这将返回true。
^[^`~!@#$%^&*()_+={}\[\]|\\:;“’<,>.?๐฿]*$