Python Тогтмол илэрхийлэл /RegEx/
RegEx /Regular Expression/ буюу Тогтмол илэрхийлэл гэдэг нь хайлтын хэв маягийг үүсгэдэг тэмдэгтүүдийн дараалал юм.
Тухайн мөрөнд заасан хайлтыг агуулсан эсэхийг шалгахын тулд RegEx ашиглаж болно
RegEx Module
RegEx /Regular Expression/ буюу Тогтмол илэрхийллийн иж бүрдлийг re
түлхүүр үгээр дуудаж ашиглах боломжтой болно.
Жишээ нь:
re
модулийг дуудаж байна
import re
RegEx
RegEx-г re
түлхүүр үгээр дуудсанаар бид ашиглах боломжтой боллоо.
Жишээ нь:
"Tell"-аар эхлээд "English"-ээр дууссан өгүүлбэр байгаа эсэхийн хайж үзье.
import re
txt = "Tell people you’re learning English"
x = re.search("^Tell.*English$", txt)
if (x):
print ("Англи хэл сурч байгаа хүмүүст ХЭЛ")
else:
print ("Утга хайж өгсөнд баярлалаа")
Үр дүн
C:\Users\Pc Name>regex.py
Англи хэл сурч байгаа хүмүүст ХЭЛ
findall() функц
findall()
хайлтын үр дүнд илэрсэн бүх тохирох утгыг буцаана.
Жишээ нь:
"Tell"-аар эхлээд "English"-ээр дууссан өгүүлбэр байгаа эсэхийн хайж үзье.
import re
txt = "Tell people you’re learning English"
x = re.findall("o", txt)
print (x)
Үр дүн
C:\Users\Pc Name>regex.py
['o', 'o']
Тохирох утгыг list-ээр буцаасан байна.
Хэрэв тохирох утга олдохгүй бол хоосон утга буцаах болно.
Жишээ нь:
"Tell"-аар эхлээд "English"-ээр дууссан өгүүлбэр байгаа эсэхийн хайж үзье.
import re
txt = "Tell people you’re learning English"
x = re.findall("google", txt)
print (x)
Үр дүн
C:\Users\Pc Name>regex.py
[]
split() функц
split()
функц нь string-г заасан утгаар нь салгах болно.
Жишээ нь:
Хоосон зайгаар салгаж үзье.
import re
txt = "Tell people you’re learning English"
x = re.split("\s", txt)
print (x)
Үр дүн
C:\Users\Pc Name>regex.py
['Tell', 'people', 'you’re', 'learning', 'English']
Параметрээр утгыг зааж өгснөөр maxsplit
-ийн анхны утгыг өөрчилж болно.
Жишээ нь:
Эхний хоёр string -г салгаж үзье.
import re
txt = "Tell people you’re learning English"
x = re.split("\s", txt, 2)
print (x)
Үр дүн
C:\Users\Pc Name>regex.py
['Tell', 'people', 'you’re learning English']
sub() функц
sub()
функц нь заасан утгыг өгөгдсөн утгаар солино.
Жишээ нь:
Хоосон зайг 7-н тоогоор сольж үзье.
import re
txt = "Tell people you’re learning English"
x = re.sub("\s", "7", txt)
print (x)
Үр дүн
C:\Users\Pc Name>regex.py
Tell7people7you’re7learning7English
count
параметрээр тоог зааж өгч болно.
Жишээ нь:
Эхний гурван хоосон зайг 7-н тоогоор сольж үзье.
import re
txt = "Tell people you’re learning English"
x = re.sub("\s", "7", txt, 3)
print (x)
Үр дүн
C:\Users\Pc Name>regex.py
Tell7people7you’re7learning English
search() функц
search()
функц нь заасан утгыг хайж үзээд хэрэв таарч байвал match объектыг буцаах болно.
Хэрвээ заасан утга нэгээс олон байвал эхний тохиолдлыг буцаах болно.
Жишээ нь:
import re
txt = "Tell people you’re learning English"
x = re.search("\s", txt)
print ("Эхний хоосон зайн ", x.start(), "-д байрлаж байна")
Үр дүн
C:\Users\Pc Name>regex.py
Эхний хоосон зайн 4 -д байрлаж байна
Хэрвээ заасан утга байхгүй бол none
-г буцаана.
Жишээ нь:
import re
txt = "Tell people you’re learning English"
x = re.search("Good", txt)
print(x)
Үр дүн
C:\Users\Pc Name>regex.py
None
Match Object
Match Object нь хайлт, үр дүнгийн талаарх мэдээллийг агуулсан объект юм.
Жишээ нь:
Тохирох утгыг хайгаад Match Object-г буцааж үзье.
import re
txt = "Tell people you’re learning English"
x = re.search("le", txt)
print (x)
Үр дүн
C:\Users\Pc Name>regex.py
<re.Match object; span=(9, 11), match='le'>
Match Object нь өөрийн шинж чанараар хайлт хийх боломжтой байдаг. Үүнд:
span()
функц нь агуулгын эхлэл болон төгсгөлийн байрлалыг буцаана.string
функц нь оруулсан мөрийг бүхэлд нь буцаана.group()
Тохирох утга илэрсэн string -г хэвлэнэ.
span()
Жишээ нь:
span()
функц нь агуулгын эхлэл болон төгсгөлийн байрлалыг буцаадаг. Тэгвэл "E" үсэг орсон string-ийн эхлэл болон төгсгөлийн байрлалыг хэвлэж үзье. /"E" эхэлсэн string бол English/
import re
txt = "Tell people you’re learning English"
x = re.search(r"\bE\w+", txt)
print (x.span())
Үр дүн
C:\Users\Pc Name>regex.py
(28, 35)
String
Жишээ нь:
string
функц нь оруулсан мөрийг бүхэлд нь буцаана.
import re
txt = "Tell people you’re learning English"
x = re.search(r"\bE\w+", txt)
print (x.string)
Үр дүн
C:\Users\Pc Name>regex.py
Tell people you’re learning English
group()
Жишээ нь:
group()
Тохирох утга илэрсэн string -г хэвлэнэ. Өөрөөр хэлбэл "E" үсгээр эхэлсэн эхний үгийг буцаана.
import re
txt = "Tell people you’re learning English"
x = re.search(r"\bE\w+", txt)
print (x.group())
Үр дүн
C:\Users\Pc Name>regex.py
English