re.match
dizenin başında sabitlenir. Bunun yeni satırlarla ilgisi yoktur, bu yüzden ^
kalıpta kullanmakla aynı şey değildir .
As re.match belgelerine diyor ki:
Dizenin başındaki sıfır veya daha fazla karakter
normal ifade modeliyle eşleşiyorsa, ilgili MatchObject
örneği döndürün. İade None
dize deseni aynı değilse; bunun sıfır uzunluklu eşleşmeden farklı olduğunu unutmayın.
Not: Bir eşleşmeyi dizede herhangi bir yerde bulmak istiyorsanız search()
bunun yerine kullanın.
re.search
belgelerin dediği gibi tüm dizeyi arar :
Normal ifade deseninin eşleştiği bir konumu arayan dizeyi tarayın ve karşılık gelen bir MatchObject
örneği döndürün. Dizede None
hiçbir konum kalıba uymuyorsa geri dönün ; bunun dizenin bir noktasında sıfır uzunluklu bir eşleşme bulmaktan farklı olduğunu unutmayın.
Bu nedenle, dizenin başında eşleşmeniz veya tüm dize kullanımını eşleştirmeniz gerekiyorsa match
. Bu daha hızlı. Aksi takdirde kullanın search
.
Dokümantasyon bir sahip için özel bölümüne match
vs.search
ayrıca satırlı dizeleri kapsar:
Python, düzenli ifadelere dayalı iki farklı ilkel işlem sunar: yalnızca dizenin başındamatch
bir eşleşme
olup olmadığını kontrol ederken , dizenin herhangi bir yerinde bir eşleşme olup olmadığını denetler
(Perl varsayılan olarak bunu yapar).search
Şununla başlayan normal bir ifade kullanıldığında bile match
farklı olabileceğini unutmayın : yalnızca dizenin başlangıcında veya
bir satırsonunu hemen takip eden modda eşleşir. “ ” Operasyonu başarılı olarak yalnızca desen eşleşmeleri baştan dize
moda bakılmaksızın, veya opsiyonel tarafından verilen başlangıç pozisyonunda
bir satır önündeki olsun bunun bakılmaksızın argüman.search
'^'
'^'
MULTILINE
match
pos
Şimdi, yeterli konuşma. Bazı örnek kodları görme zamanı:
# example code:
string_with_newlines = """something
someotherthing"""
import re
print re.match('some', string_with_newlines) # matches
print re.match('someother',
string_with_newlines) # won't match
print re.match('^someother', string_with_newlines,
re.MULTILINE) # also won't match
print re.search('someother',
string_with_newlines) # finds something
print re.search('^someother', string_with_newlines,
re.MULTILINE) # also finds something
m = re.compile('thing$', re.MULTILINE)
print m.match(string_with_newlines) # no match
print m.match(string_with_newlines, pos=4) # matches
print m.search(string_with_newlines,
re.MULTILINE) # also matches