2011-03-04 23 views
7

Dizede yeni bir satır nasıl kontrol edilir?Python 3.x dizesinde yeni bir satırı nasıl kontrol edebilirim?

python3.x'in, java'nın doğrudan if (x=='*\n') çalışmasının çalıştığı normal çalışmasına benzer bir özelliği var mı?

+0

Ben yeni satır _any_ tür denetleme çözümü için umuyordum sadece unix stili. – ThorSummoner

+0

not: [yeni satırlar olarak tanınabilecek birden çok Unicode karakteri vardır] (https://docs.python.org/3/library/stdtypes.html#str.splitlines) – jfs

+1

@ThorSummoner: Python varsayılan olarak evrensel yeni satır modunu kullanır Yani, '' \ r \ n 'gibi platforma özgü yeni satırlar girişte' 'n' 'ye çevrilir ve tersine' 'n' 'çıktıda os.linesep'e çevrilir. Unicode yeni satırları umursamıyorsanız; '' \ n 'çoğu durumda gereken tek şey. – jfs

cevap

23

Eğer sadece bir satır (\n) varsa, sadece bir dizede olmadığını kontrol etmek Python'un in operatörünü kullanabilirsiniz kontrol etmek isterseniz:

>>> "\n" in "hello\ngoodbye" 
True 

... ya da if parçası olarak bildirimi:

Bu durumda normal ifadeler kullanmanıza gerek yoktur.

+0

, dizginin "\ n" ile bitip bitmeyeceğini bilmek isterseniz, "\ n" == foo [-1] –

+0

Teşekkür ederim. İşe yaradı. – change

+0

@XavierCombelle: 'foo.endswith ('\ n')' daha okunabilir. – jfs

9

Evet, böyle:

if '\n' in mystring: 
    ... 

(Python düzenli ifadeler var, ama onlar bu durumda overkill konum.)

+0

Evet, dokümanı okurken farkettim .. – change

İlgili konular