Not: Examples provided are in Python.
Yine de konsept aynı kalır.
'.'
Bir olan eşleştirme sembolü dışında herhangi bir karakterle eşleşir satır karakteri (bu da birlikte geçersiz kılınabilir re.DOTALL
Python argüman). Bu nedenle aynı zamanda Joker olarak da adlandırılır .
'*'
bir niceleyicidir (bir elementin ne sıklıkla meydana gelebileceğini tanımlar). {0,} için kısa .
“Sıfır veya daha fazla eşleş ” anlamına gelir - yıldızdan önce gelen grup, metinde herhangi bir sayıda olabilir. Tamamen eksik olabilir veya tekrar tekrar tekrarlanabilir.
'?'
aynı zamanda bir niceleyicidir . {0,1} için kısa .
"Sıfır eşleşmesi veya bu soru işaretinden önceki gruptan biri" anlamına gelir . Ayrıca , soru işaretinden önceki bölümün isteğe bağlı olması nedeniyle yorumlanabilir .
Örneğin:
pattern = re.compile(r'(\d{2}-)?\d{10}')
mobile1 = pattern.search('My number is 91-9999988888')
mobile1.group()
Output: '91-9999988888'
mobile2 = pattern.search('My number is 9999988888')
mobile2.group()
Output: '9999988888'
Yukarıdaki örnekte '?' ondan önceki iki basamağın isteğe bağlı olduğunu gösterir.
'Arasındaki fark. ve '?':
'.'
normal ifadede tuttuğu yer için herhangi bir tek karakteri eşleştirir / kabul eder / doğrular .
Örneğin:
pattern = re.compile(r'.ot')
pattern.findall('dot will identify both hot and got.')
Output: ['dot', 'hot', 'got']
'?'
ondan önceki grubun sıfır veya tek oluşumunu eşleştirir / doğrular .
Cep telefonu numarası örneğini kontrol edin.
Aynı şey ile gider '*'
. Ondan önceki gruptaki sıfır ya da daha fazla oluşum kontrol eder .
Kombinasyon:
'.*'
: Mümkün olduğu kadar çok dizi kabul eder. Açgözlü yaklaşım .
'.*?
'İlk eşleşen diziyi kabul eder ve durur. Açgözlü olmayan yaklaşım
Daha fazla bilgi için, aşağıdaki iki soruyu okumayı düşünün ...