2012-11-16 28 views
11

Düzenli bir ifade kullanma İlk 3 karakteri bir dize (karakterden bağımsız olarak) nasıl ayıklayabilirim? Ayrıca ayrı bir ifade kullanarak son 3 karakteri bir dizeden çıkarmak istiyorum, bunu nasıl yaparım? Web üzerinde herhangi bir örnek bulamıyorum eğer biliyorsan, teşekkürler.Normal İfade ayıklamak ilk üç karakteri bir dize

Teşekkür Steven

+0

Çıkartma kısmı dile bağlıdır. Eşleştirme oldukça önemsiz, bazı derslerde bir göz atın ve bunu elde edebilmeniz gerekir. (Bunu tavsiye ederim: http://www.regular-expressions.info/tutorial.html) İyi şanslar –

cevap

15

Herhangi bir programlama dili normal bir ifade (substring fonksiyonun yani bir tür ya da dizeleri için bir slice fonksiyonu) kullanılarak daha iyi bir çözüm olmalıdır. Ancak, bu elbette normal ifadelerle (metin editörü gibi bir araçla kullanmak istediğinizde) yapılabilir. Dizenin başlangıcını veya sonunu belirtmek için anchors'u kullanabilirsiniz.

^.{0,3} 
.{0,3}$ 

Bu (mümkün olduğu kadar çok) bir dize 3 karakter eşleşir. "Tam olarak 3" yerine "0'dan 3'e" semantiğini ekledim, böylece bu daha kısa dizelerde de çalışırdı.

Not: ., linebreaks dışındaki herhangi bir karakterle eşleşirse genellikle . Orada bu davranışını değiştirecek bir s veya singleline seçenek genellikle, ama seçenek belirleme olmadan alternatif (gerçekten herhangi 3 karakter eşleşir) bu vardır:

^[\s\S]{0,3} 
[\s\S]{0,3}$ 

Ama dediğim gibi şiddetle karşı tavsiye Bu yaklaşımı, diğer dize işleme işlevlerini sağlayan bazı kodlarda kullanmak isterseniz. Ayrıca, gerçekten a tutorial'u da incelemelisiniz.

+1

Teşekkürler, alt dizeyi kullanamıyorum, düzenli ifadeleri alanlara ve işlemek için kullanılmasına izin veren bir program kaldım. Kodla karışıklıktan ziyade yeni bir normal ifade eklemek istedim. Teşekkürler – user1226884

+0

@ user1226884 yeterince adil. Her durumda, bir dahaki sefere bir normal soru sorduğunuzda, lütfen kullandığınız dili veya aracı ekleyin. Bundan daha karmaşık bir şey için çok önemlidir;). ve bu öğreticiyi kontrol edin. bazı düzenli ifade temellerini bilmeye değer. –