Özür - Konuyu olmayan regex yarma için ilk sonucu olarak ortaya çıkıyor bir cümle. Öğrencilerim için Python'a özgü olmayan bir yöntemle geldiğimi ve bu iş parçamın soruma cevap vermediğimi düşündüğümde, olayın hemen ardından paylaşacağımı düşündüm.
kod noktası (ve büyük dosyalar üzerinde çabuk) hiçbir kütüphaneleri kullanmaktır
:
sentence = "George Bernard-Shaw was a fine chap, I'm sure - who can really say?"
alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
words = []
word = ""
mode = 0
for ch in sentence:
if mode == 1:
words.append(word)
word = ""
mode = 0
if ch in alpha or ch == "'" or ch == "-":
word += ch
else:
mode = 1
words.append(word)
print(words)
Çıktı:
['George', 'Bernard-Shaw', 'was', 'a', 'fine', 'chap', "I'm", 'sure', '-', 'who', 'can', 'really', 'say']
ben gerçekten sadece yaklaşık yarım saat içinde bu yazdım Bu yüzden mantığın temizlenebileceğine eminim.Ayrıca, kullanımı ters çevrilmiş virgül gibi bir şeyle karşılaştırıldığında tutarsız olduğu için tire gibi uyarılarla başa çıkmak için ek mantık gerektirebileceğini de kabul ettim. Gerçekten de, bunu doğru bir şekilde yapan herhangi bir modül var mı?
Çekiç elinizde iken bir çiviyi sürmek için bir anahtar kullanarak ısrar ediyorsunuz. Niye ya? –
OP'ye herhangi bir saygısızlık göstermeksizin, uygun araçların hangi sebepten dolayı (bazen geçerli), zaman zaman ortaya çıktıkları bu tür soruların bir etiketi olmalıdır. Belki de 'luddizm'? –
C# "merhaba, nasılsınız? Ben iyiyim, teşekkür ederim. Ve sen?" Bölünmüş (",". ". ToCharArray(), StringSplitOptions.RemoveEmptyEntries); –