正規表現が文字列中の空白を見つけるための提案がありません。はい、次のループのための文字列をループするという概念はうまくいくでしょう。私は本当に正規表現とパターンマッチャーでこれを行う方法を学びたい!私の質問はどこで私は私の正規表現の文字列に追加する必要がありますので、それは偽を返しますか?以下のコード私は無用に(\\ s)の多数の化身を追加しました。私は空白を削除したくありません。java regex文字列内のすべての空白を見つけよう
リンクはコメント
String tstr = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[[email protected]$!%*?&])[A-Za-z\\[email protected]$!%*?&]";
String astr = etPW.getText().toString().trim();
Pattern regex = Pattern.compile(tstr);
Matcher regexMatcher = regex.matcher(astr);
boolean foundMatch = regexMatcher.find();
if(foundMatch == false){
Toast.makeText(MainActivity.this, "Password must have one Numeric Value\n"
+ "\nOne Upper & Lower Case Letters\n"
+ "\nOne Special Character $ @ ! % * ? &", Toast.LENGTH_LONG).show();
//etPW.setText("");
//etCPW.setText("");
// Two lines of code above are optional
// Also by design these fields can be set to input type Password in the XML file
etPW.requestFocus();
return ;
}
パスワードの要件は何ですか?なぜ文字クラスで '$'を2回繰り返すのですか?私は何度も見てきました。なぜそれが何をしているのかを実際に理解することなく正規表現をコピーするのはなぜですか?そして、あなたはその一部をコピーしたようです。 –
@WiktorStribiżew私はコードを完全に理解していないかもしれないことに私は同意するが、正規表現テスターサイトなどからこのコードをコピーした。要件には、大文字の大文字と小文字が1つ含まれていて、数字は許可されています。私は文字クラスで$を2回削除してテストします。OK Dupesが削除されました。ありがとうございました –
ダブル '$'は何の害もなく、悪いスタイルです。 ?=。* [az](?=。* [AZ])(?=。* \\ d)(?=。* [$ @ $!%*?&])\\ S * "'を使用しますが、 'regexMatcher.matches()'と一緒に使用してください。実際の要件を含めるように質問を更新してください。 –