Android 带有所有特殊符号的正则表达式
我需要只允许拉丁字符、数字和所有其他符号(但不允许空白)的正则表达式 谢谢 更新:Android 带有所有特殊符号的正则表达式,android,regex,Android,Regex,我需要只允许拉丁字符、数字和所有其他符号(但不允许空白)的正则表达式 谢谢 更新: private boolean loginPassHasCorrectSymbols(String input){ if (input.matches("[A-Za-z0-9\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\>\=\?\@\[\]\{\}\\\^\_\`\~]+$")){ return true;
private boolean loginPassHasCorrectSymbols(String input){
if (input.matches("[A-Za-z0-9\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\>\=\?\@\[\]\{\}\\\^\_\`\~]+$")){
return true;
}
return false;
}
private boolean loginPassHasCorrectSymbols(字符串输入){
if(input.matches(“[A-Za-z0-9\!\”\\\\$\%\&\'(\)\*\+\,\-\.\/\:\;\=\?\@\[\]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]+$”){
返回true;
}
返回false;
}
除了空白以外的所有内容如何
"^\S+$"
我希望我都拿到了
"[A-Za-z0-9\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\>\=\?\@\[\]\{\}\\\\\^\_\`\~]+$"
我做到了,这对我来说很有用 您可以通过在Edittext上提及空格来阻止空白,也可以通过实用的方式在Edittext.addtextChangeListner上阻止 1>
android:digits="0,1,2,3,4,5,6,7,8,9,*,qwertzuiopasdfghjklyxcvbnm,_,-"
etNewPassword.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (etNewPassword.getText().toString().contains(" ")) {
etNewPassword.setText(etNewPassword.getText().toString().replace(" ", ""));
int iLength = etNewPassword.getText().toString().length();
etNewPassword.setSelection(iLength);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
2>
android:digits="0,1,2,3,4,5,6,7,8,9,*,qwertzuiopasdfghjklyxcvbnm,_,-"
etNewPassword.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (etNewPassword.getText().toString().contains(" ")) {
etNewPassword.setText(etNewPassword.getText().toString().replace(" ", ""));
int iLength = etNewPassword.getText().toString().length();
etNewPassword.setSelection(iLength);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
如果有任何问题,请告诉我。要查找除空格以外的任何符号,您可以使用此代码。希望您觉得它有用
public static boolean hasAnySymbolExceptWhitespace(String string){
return Pattern.matches("(?=.*[^a-zA-Z0-9] ).*", string);
}
当你说“特殊符号”时,你是指所有不是字母数字字符的字符吗?所有可以从键盘输入的符号,但我认为你是对的)如果你只需要保护西里尔字母,为什么不使用呢?试试
input.matches((?U)[^\\s\\p{iscrylic}]*)
@stribizhev在索引3附近的regexp模式中出现语法错误:(?U)[^\s\p{iscyrical}]*@stribizhev非法参数错误((nope)cos,在这种情况下我需要保护西里尔符号)嗯,在我摸索的时候西里尔语不是需求的一部分。我没有这方面的经验,但知道:)。你可能会从中得到一些东西,但我自己都不知道如何测试它……祝你好运。@LeoCHan:你知道Python,我想你会更好,对吧?你不需要$
@Stribizev,我想我在Java和Java方面都相当不错毕竟Python.Java是我的第一个:)但是在最初的帖子中,OP在他最初的正则表达式末尾有一个$
,这让我认为他想要一个$
来标记一行的结尾。@LudoBagman我只是添加了更多的反斜杠,希望我能正确地转义。没有符号“here\\\\“-有效)如何添加此符号?只是在黑暗中拍摄,但请检查添加更多反斜杠是否有效,使其成为\\!\\”
。因此,对于\\\\“
,您有两个反斜杠来获得一个\`和另一个反斜杠来获得“`。如果有效,请告诉我,以便我可以更新我的答案。