2016-04-09 21 views
2

string'un tam olarak 4 sayı ile bitip bitmeyeceğini belirlemenin en iyi yolunu bulmaya çalışıyorum. Sayı aralığı 0000-9999 arasında olacaktır. Örn.,C# - Dizin 4 sayı ile bitip bitmediğini kontrol edin

örn. "MVI_2546" veya "FILETEST" gibi bir şey olabilir.

Bu dizeyi ayrıştırmam ve temel olarak tam olarak 4 sayı ile bitip bitmeyeceğine bağlı olarak true veya false değerini döndürmem gerekiyor. bir hata atılır ise

+0

Regex.Match – ClasG

+0

düzeltme (yourString, "\ d {4} $") başarı.:. 'Regex.Match (yourString @ "\ d {4} $") Success' – ClasG

+0

Haha Bunu yayınlamanızdan önce @ işaretine ihtiyacım olduğunu öğrendim. Bu tam olarak ihtiyacım olduğu gibi çalışır. Teşekkürler! – Derek

cevap

0

bir tamsayı

olarak bu numara çevirmek

deneyin son 4 numaraları için dize Trim -> son 4 - İşe yararsa> son 4 rakam bir sayı değildir rakamlar bir sayıdır ve kullanmak için bu intraya sahip olursunuz.

2

bu deneyin:

\d{4}$ 

\d bir rakamla eşleşir {4} niceleyici önceki dizgeciği 4 (4 basamak) ve $ dize sonu tanımlar olması gerektiğini belirtmektedir.

$ kullanımına bir örnek:

string str = "MVI_2546"; 

bool match = 
    str.Length >= 4 && //Make sure that the string has at least 4 characters 
    str.Substring(str.Length - 4) //Check that the last 4 characters 
     .All(char.IsDigit); //are all digits. 
2

# RegEx foo 
foo  # Match 
barfoo # Match 
foobar # Match 

# RegEx foo$ 
foo  # Match 
barfoo # Match 
foobar # No Match 

Live Demo on Regex101

bunu yapmak için tek yoldur Bir dizgiyi düzenli ifadeye karşı test etmek içinkullanılabilir. Bir eşleşme yapıldıysa Başarı özelliğinin gösterildiği bir Eşleme nesnesini döndürür. yourString dört basamaklı biter eğer testinde

Regex.Match(yourString, @"\d{4}$").Success 

bunu kullanın görmek için.

Selamlar

İlgili konular