Aşağıdaki üç satırlık kodun dizeyi $ değerine çıkarmayı ve $ başlıkta saklamayı amaçladığını biliyorum. Ama $value =~ s/^\s+//;
ve $value =~ s/\s+$//;
arasındaki farkların ne olduğunu bilmiyorum.
cevap
:
nasıl bir dize başlangıcı/ucundan boşluk şerit mı?
Bir ikame sizin için bunu yapabilir. Tek bir satır için, 'u, tüm ön veya arkadaki boşlukları hiçbir şeyle değiştirmeyeceksiniz. Kombine açıklamada ayrı olanlardan daha yavaştır dışarı o döner rağmen
s/^\s+//; s/\s+$//;
Ayrıca, tek bir ikame olarak bu yazabilirsiniz: değiştirmelerin bir çift ile yapabilirsiniz. Yani olsa sizin için önemli olmayabilir:
s/^\s+|\s+$//g;
bu düzenli ifade olarak dönüşümlü başına veya dizesinin sonunda ya maçları çapalar münavebe daha düşük öncelik beri.
/g
bayrağıyla, ikamesi tüm olası eşleşmeleri yapar, böylece her ikisini de alır. Unutmayın, son satırının\s+
ile eşleştiğini ve$
ankrajının dizenin mutlak sonuna denk gelebileceğini unutmayın, böylece yeni satır da kaybolur.
Ve perldoc perlrequick
den
biz ankrajı metakarakterlerini
^
ve$
kullanmak istiyorsunuz, belirtin. Bağlantı^
, dizenin başlangıcında eşleşmesi anlamına gelir ve$
ankrajı, dizenin sonundaki veya dizenin sonundaki yeni satırdan önce eşleşme anlamına gelir. Bazı örnekler:"housekeeper" =~ /keeper/; # matches "housekeeper" =~ /^keeper/; # doesn't match "housekeeper" =~ /keeper$/; # matches "housekeeper\n" =~ /keeper$/; # matches "housekeeper" =~ /^housekeeper$/; # matches
^ile başlayan anlamına gelir, $, bu dizeyle sona erer.
'\ z',' $ 'yi değil. '$', dizenin sonunu veya dizenin sonundaki bir satırsonuyla eşleşir. – ikegami
İlki, yalnızca satırın başında boşlukları değiştirecektir. perldoc perlfaq4
itibaren
- 1. Düzenli ifade nedir \\ s *, \\ s *?
- 2. Sprintf_s sprintf analogu nedir (newpath, "% s% s", ...)?
- 3. Double.valueOf (String s) ve yeni Double (String s) çağrıları arasındaki fark nedir?
- 4. s, S veya c + <cr>
- 5. regex anlama [\ s \ S - [<>]] *
- 6. TextView'da (s/g) etFreezesText nedir?
- 7. Bir dize bölme ancak bazı semboller ekleme (# 's ve +' s)
- 8. [\ S \ s] * PHP'de normal ifadede ne anlama gelir?
- 9. Başka bir arraylist [s] satırından arraylist [s] oluştur [0]
- 10. S-Plus Database'i S-Plus olmadan okuyor musunuz?
- 11. yapın: s (sk)
- 12. Ctrl + S preventDefault Chrome
- 13. S-up'a nasıl bağlarım?
- 14. S # arp Architecture
- 15. Ruby ile S/MIME
- 16. IntelliJ IDEA Ctrl-S
- 17. xmlstarlet özgü sınıf s
- 18. C++ 17 operatörü "" s?
- 19. S (kdb +): Karakter vektörü
- 20. sed: sonlandırılmamış 's' komutu '
- 21. Symfony2's Yapılandırma sınıfı
- 22. Dize interpolasyon: f veya s
- 23. sin v/s sinf işlevi C
- 24. Bu satır anahtarlarının anlamı nedir (% S) = @ C_fields ;?
- 25. POSIX'in Win32's Mutex'ine eşdeğer nedir?
- 26. Ültimain Anlamı Sert (-H) ve Yumuşak (-S)
- 27. Teller; &s+1; Yasal? UB?
- 28. C# 's Python eşdeğeri .Select?
- 29. get_absolute_url - Django`s site haritası
- 30. Luigi - Unilfilled% s çalışma zamanında
sadece kayıt için ... "Ben kodları aşağıdaki üç satırı $ değerine dize ayıklamak ve $ başlığında saklayın hedefliyoruz biliyoruz", yok. Scalar $ değerinin uçlarından beyaz boşluk bırakmayı ve onu @header dizisinin $ i-th elemanına yerleştirmeyi amaçlıyorlar. – AmbroseChapel