2010-03-24 22 views
6

Normal ifadeyi kullanarak bir dizenin son 2 karakterini ayıklamanın en iyi yolu nedir?düzenli ifade: son iki karakteri ayıkla

Örneğin, ben şu

"A_IL" devlet kodunu elde istiyorum

Ben dize olarak IL ayıklamak istiyorum ..

bana bunu elde etmek için nasıl C# kodu veriniz ..

string fullexpression = "A_IL"; 
string StateCode = some regular expression code.... 

sayesinde

+3

Yaygın dize işlemleri yerine düzenli ifadeleri kullanmanız için belirli bir neden var mı? –

cevap

21

Kullanım regex:

..$ 

Bu, uç ankrajın yanındaki iki karakteri döndürecektir. C# kullanarak konum beri

, bu muhtemelen daha hızlı daha kolay ve olacaktır:

string fullexpression = "A_IL"; 
string StateCode = fullexpression.Substring(fullexpression.Length - 2); 
+1

Aslında '' –

+0

Evet '' ve aslında çoğu motor için gruba ihtiyacınız olmadığını anladım. Alt dizini önermek için –

+4

+1. İş için doğru aracı kullanın. – Joel

3

Kullanım /(..)$/ sonra (vb .groups(1), $1, \1) grubu 1 çekin.

+0

Çok karmaşık, Basit tut. – jpabluz

+3

Bir downvote çağırır sanmıyorum. –

+0

"Karmaşık", Basit tanımınıza bağlıdır. Birçok senaryoda bu daha basit ve zariftir. Örneğin, bu 2-3 adımlı işlemi tek adımlı bir dönüşüme dönüştürebilir. – zaTricky