İzin verilen karakterler (en az) A-Z, a-z, 0-9, ö, Ö, ä, ä, å, Å ve Almanca, letonca, estonca (varsa) özel karakterlerdir? Hazır yöntem var mı yoksa kara listeye mi (izin verilmeyen karakterlere) ve normal ifadelere IsMatch mi yapmalıyım? Kara listeyi nasıl kullanacağınız hazır değilse?Dize, C# /. NET 2.0 içinde alfa olmayan sayısal karakterler içerip içermediğini nasıl bulabilirim?
Dize, C# /. NET 2.0 içinde alfa olmayan sayısal karakterler içerip içermediğini nasıl bulabilirim?
cevap
Tüm bu dillerdeki özel karakterlerin nasıl kategorize edildiğini bilmiyorum, ancak Char.IsLetterOrDigit
yönteminin ne yapmak istediğinizle eşleşip eşleşmediğini kontrol edebilirsiniz. En azından ben test rakamlar ve harfler için çalışır:
string test = "Aasdf345ÅÄÖåäöéÉóÓüÜïÏôÔ";
if (test.All(Char.IsLetterOrDigit)) { ... }
UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter veya DecimalDigitNumber olarak Unicode içinde kategorize edilir karakterler için geçerlidir Char.IsLetterOrDigit
döner.
Ne test.All? Bu bir string metodu değil, bir çeşit uzatma metodu mu? Ya da bir LINQ yöntemi? – Task
@Task 'All', dizenin linq uzantısıdır. Bkz. Http://msdn.microsoft.com/en-us/library/system.string.aspx – mydogisbox
Ah! Belgelerin "Uzantı Yöntemleri" bölümü benim için yeni, daha önce bunu görmemiştim. Sanırım, daha önce "Properties" veya "Methods" alanında ihtiyacım olan her şeyi bulmaya alışıktım. Teşekkürler! – Task
Araştırmak char.IsLetterOrDigit(char)
. Örneğin
:
myString.All(c => char.IsLetterOrDigit(c));
Sadece merak, ama neden bu downvoted oldu? Anlayabildiğim kadarıyla, OP'nin sorduğu şeyi yapmanın tam olarak geçerli bir yolu. – Flynn1179
Ah .. daha yakın bir bakış vardı; oradaki 0-9 şartını asla fark etmedim.Sadece 'IsLetter' yerine 'IsLetterOrDigit' kullanmak için cevabımı değiştirdim. – Flynn1179
Bunun için bir kısa yol 'myString.All (char.IsLetterOrDigit);' p {option} – gls123
karakterler için bir kara liste muhtemeldir oldukça büyük :-) Sen ondalık rakam ve harf maç için düzenli ifade
^[\d\p{L}]+$
kullanabilirsiniz
bakılmaksızın komut dosyasının Bir "harfi" (BMP 46817) olarak sınıflandırılan her Unicode karakter içeren her (BMP, toplam 230), basamak ve \p{L}
içerir -
Bu normal ifade kestirme \d
ihtiva eden bir karakter sınıfı oluşur. Söz konusu karakter sınıfı daha sonra en az bir kez tekrarlanır ve ^
ve $
arasına gömülür - dize başlangıç ve bitiş ankrajları, böylece tam dizeyle eşleşir. Bazı regex motorlar için
^[\d\p{Letter}]+$
kullanabilirsiniz, .NET bu desteklemez. Yukarıda belirtilen ilk regex, komut dosyasında bir rakam veya harf olan her şeyi yakalar. Bu yüzden Hint veya Arap rakamları ve İbranice, Kiril ve Latin olmayan diğer yazılarla eşleşecek. İstediğinize bağlı olarak uygun olmayabilir.
Bu sorun çıkarsa, izin vermek istediğiniz karakterleri açıkça listelemekten daha iyi bir seçenek görmüyorum. Ancak, belirli bir dilde metnin her zaman bu dilin senaryosuyla sınırlı olduğunu varsaymayı tehlikeli buluyorum. Almanca bir metinde Çek veya Lehçe adı yazacak olsaydım, muhtemelen sadece [a-zA-ZäöüÄÖÜß]
'dan daha fazlasına ihtiyacım olurdu.
+1 teşekkürler! nasıl^[\ d \ p {L}] + $ nasıl çalıştığını açıklayabilir misiniz. Web'den kontrol ettim ama tamamen özetleyemedim ... –
için –
İzin verilen karakterlerle eşleşmesi yanlış bir dönüş yakalamak daha kolay olurdu.
- 1. Dize içerip içermediğini kontrol edin
- 2. Bir dize yalnızca rakam/sayısal karakterler içeriyorsa nasıl kontrol edilir
- 3. Dize beyaz boşluk içerip içermediğini nasıl kontrol edilir
- 4. metin kutusunun dize içerip içermediğini kontrol edin
- 5. Dizenin özel karakterler içerip içermediğini nasıl tespit edilir?
- 6. PHP: Bir dizenin özel karakterler içerip içermediğini nasıl anlarsınız?
- 7. Dize önde gelen harfler içerip içermediğini kontrol edin
- 8. MySQL - varchar sütunu sadece sayısal olmayan (alfa sayısal) seçmek istediğiniz
- 9. Bir dize Swift'de harfler içerip içermediğini nasıl kontrol edebilirim?
- 10. Dize listedeki tüm girişleri içerip içermediğini kontrol edin
- 11. Bir dizenin tarih içerip içermediğini kontrol edin
- 12. PHP dosyada bir dize içerip içermediğini kontrol edin
- 13. Geçerli Emacs arabelleğinin bir dize içerip içermediğini kontrol edin
- 14. jQuery, bir şey içerip içermediğini algılar
- 15. Bir dizginin C içinde başka bir dizgi içerip içermediğini kontrol etmenin basit bir yolu?
- 16. Bir sözlüğün belirli anahtarlar içerip içermediğini sınama
- 17. iOS NSMutableArray, NSNumber nesneleri içerip içermediğini nasıl kontrol eder?
- 18. Arapça'dan olmayan alfasayısal olmayan karakterler karakterleri UTF8 + İngilizce dize
- 19. Alfa sayısal ve Yunanca karakterleri ggplot'ta geom_text() öğesine nasıl ekleyebilirim?
- 20. Bir İfadenin "yalnız" içerip içermediğini bulma ParameterExpression
- 21. Dizgimin JavaScript'te bir süre içerip içermediğini nasıl kontrol edebilirim?
- 22. Applescript: bir dizenin boş dizgi içerip içermediğini kontrol edin.
- 23. Numpy: Dizi belirli sayılar içerip içermediğini nasıl kontrol edilir? Örneğin
- 24. Dize dize diğer dize içermediğini denetleme
- 25. Kaldır Olmayan İngilizce Karakterler PHP
- 26. Actionscript 3: stringin başka bir dizgi içerip içermediğini kontrol edin
- 27. Bir dizinin yazı tipinde bir dizgi içerip içermediğini nasıl kontrol edilir?
- 28. Filtre olmayan alfabetik karakterler
- 29. Bir Listenin belirli türde bir nesne içerip içermediğini nasıl kontrol ederim? C#
- 30. Bir dizginin yalnızca Python'daki harfleri içerip içermediğini nasıl kontrol edebilirim?
http://stackoverflow.com/questions/2371780/ Göz önüne alınması gereken yanıtları içeren başka bir konu ek bilgi sağlayabilir. –
[.net Normal İfadenin herhangi bir dilinden herhangi bir harfle eşleşmesi için olası bir kopyası] (http://stackoverflow.com/questions/2949861/net-regular-expression-to-match-any-kind-of-letter- herhangi bir dil) – GvS