2017-01-30 42 views
1

我使用正則表達式搜索字符串:Android的正則表達式土耳其Charachter不允許的(I,S,O ...)

final String regexStr = "^[a-zA-Z ]+$"; 

但我不能寫I,O,ü... 但我可以ü ,I,U ...

TextChangedListener:

 txtSicilAdi.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void afterTextChanged(Editable s) 
     { 
      String text = txtSicilAdi.getText().toString(); 
      if (text.length() > 0) { 
       if (!text.substring(text.length() - 1).matches(regexStr)) 
       { 
        txtSicilAdi.setText(text.substring(0, text.length() - 1)); 
        txtSicilAdi.setSelection(txtSicilAdi.length()); 
       } 
      } 
     } 
     @Override 
     public void onTextChanged(CharSequence s, int st, int b, int c){ } 
     @Override 
     public void beforeTextChanged(CharSequence s, int st, int c, int a){ } 
    }); 
+2

你可以試試'^ [\ p {L}] + $' – Niitaku

+0

也就是說作品。謝謝。 – mobileprogramming

+0

我發佈它作爲答案。如果它仍能解決您的問題,您可以[接受它](http://meta.stackoverflow.com/a/251399/6403828)。它將幫助有相同問題的其他人找到您選擇的解決方案。 – Niitaku

回答

1

要考慮所有字母,而不僅僅是不突出的字母,您可以使用\p{L}。然後

你的正則表達式應該是這樣的:

^[\p{L} ]+$ 
+0

有趣,不知道'\ p {L}'。閱讀完文檔後,我添加'\ p {M}'來匹配上面帶有標記的字母。 – tfidelis

+0

@tfidelis我不知道'\ p {M}'。我不確定是否需要。可以使用哪些字符添加? – Niitaku

1

試試這個:

final String regexStr = "^[a-zA-Z0-9ığüşöçİĞÜŞÖÇ ]+$"; 
+0

這個工程,但我不能只寫「ı」。例如:「pıtır」 – mobileprogramming

+0

@mobileprogramming我在正則表達式中添加了字符「ı」。 – tfidelis