Das ist mein regex ist - “[\\w\\d\\p{Punct}]+”
\ p {} Punct Verhalten in meiner android app
Es ist sehr seltsames Verhalten von \\p{Punct}
in meiner app. die Dokumentation nach (https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html):
\ p {Punct} - Punctuation: Ein "# $% &‚() * +, -/:; < => @ [] ^.? _` {|} ~
Aber in meiner app dieses Tag auslässt immer dieses Zeichen: „$“, „+“, „<“, „>“, „=“, „^“, „`“ „|“, „~“
abc!d => true
abc#d => true
abd$d => false
abc<>d = > false
usw.
Ich versuchte
Pattern pattern = Pattern.compile("[\w\d\p{Punct}]+", Pattern.UNICODE_CASE);
Es gab keinen Effekt zu verwenden.
Anny Vorschläge, was ich falsch mache?
S.S .: Ich benutze TextWatcher dafür. Ich mache es wie folgt aus:
TextWatcher textWatcher = 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) {
// I am checking it here
// if if(!s.toString().matches("[\\w\\d\\p{Punct}]+")) => do something
}
@Override
public void afterTextChanged(Editable s) {
}
};
Als ich das TextWatcher
-MyEditText
hinzugefügt:
myEditText.addTextChangedListener(textWatcher);
@anubhava Ich habe es versucht, aber ohne irgendwelche Auswirkungen. – Alex