androidjava中地址字段的模式
我正在使用regex模式作为地址字段,它必须同时接受(字母数字和/-),但在我的代码中我犯了一些错误,它与regex不匹配。任何人都能告诉这个问题,为什么它不能正常工作 只匹配一个字符,我想匹配整个地址文本 下面是一个例子:androidjava中地址字段的模式,java,android,regex,Java,Android,Regex,我正在使用regex模式作为地址字段,它必须同时接受(字母数字和/-),但在我的代码中我犯了一些错误,它与regex不匹配。任何人都能告诉这个问题,为什么它不能正常工作 只匹配一个字符,我想匹配整个地址文本 下面是一个例子: public static boolean Address(EditText etAddress, String sAddress) { Pattern ps = Pattern.compile("[0-9A-Z.,-/ ]"); Matcher
public static boolean Address(EditText etAddress, String sAddress) {
Pattern ps = Pattern.compile("[0-9A-Z.,-/ ]");
Matcher ms = ps.matcher(etAddress.getText().toString());
boolean bs = ms.matches();
if (bs == false) {
etAddress.setError("error");
bs = true;
} else {
etAddress.setError(null);
bs = false;
}
return bs;
}
[0-9A-Z.-/]
只匹配一个字符
追加+
以匹配多个(1个或多个)字符:
[0-9A-Z.-/]+
[A-Z]
只匹配大写字母。要同时匹配小写字母,请添加a-z
。将-
放在字符集的开头或结尾。否则,它可能会导致错误(而不是按字面意义匹配-
,用作元字符含义范围)
[-0-9A-Za-z./]+
我根据您需要的解决方案对您的代码进行了一些更改:
public static boolean Address(EditText etAddress, String sAddress) {
//changed your pattern text according to your requirements
Pattern ps = Pattern.compile("[-0-9A-Za-z.,/ ]+");
Matcher ms = ps.matcher(etAddress.getText().toString());
boolean bs = ms.matches();
if (bs == false) {
etAddress.setError("error");
bs = true;
} else {
etAddress.setError(null);
bs = false;
}
return bs;
}
这将非常有效