4 na Paraan sa Python: Hanapin ang String gamit in o Regex

1. Panimula

Kahalagahan ng Pag-manipula ng String sa Python

Kapag nagpo-program sa Python, ang pag-manipula ng mga string ay isang pangunahing kasanayan na kinakailangan araw-araw. Ang pagsuri kung ang isang string ay naglalaman ng tiyak na salita o parirala ay ginagamit sa iba’t ibang sitwasyon tulad ng pagproseso ng data, pagsusuri ng teksto, at web scraping. Sa artikulong ito, ipapakita namin ang apat na pangunahing paraan gamit ang Python upang suriin kung naglalaman ang isang string ng isang partikular na teksto. Sa pamamagitan nito, makakakuha ka ng kaalaman na makakatulong sa pagpapabuti ng kahusayan ng programa at pag-iwas sa mga error.

2. Paraan 1: Simpleng paraan gamit ang in operator

Ano ang in operator

Sa Python, bilang pinaka-simpleng paraan, maaari mong gamitin ang in operator upang tingnan kung ang isang tiyak na string ay nasa loob ng ibang string. Ang pamamaraang ito ay madaling maunawaan kahit ng mga baguhan, at napakataas ng nababasa ng code. Ang in operator ay nagbabalik ng True kung ang target na string ay kasama, at False kung hindi.

Halimbawa ng paggamit

text = "Python is a versatile language."
print("versatile" in text)  # True
print("java" in text)  # False
Sa code sa itaas, sinusuri kung ang string na "versatile" ay kasama sa text, at dahil kasama ito, nagbabalik ng True. Samantala, ang "java" ay hindi kasama, kaya nagbabalik ng False.

in operator: Mga kalakasan at kahinaan

Kalakasan
  • Maikli ang code at madaling maunawaan nang intuitibo.
  • Ang resulta ay ibinabalik bilang lohikal na halaga (True o False), kaya madaling gamitin sa mga kondisyon.
Kahinaan
  • Hindi angkop para sa partial match o case-sensitive na paghahambing.
  • Maginhawa para sa simpleng paghahanap, ngunit hindi sumusuporta sa impormasyon ng posisyon o kumplikadong pattern.
侍エンジニア塾

3. Paraan 2: find() method para kunin ang index

Ano ang find() method

find() method ay isang tampok na nagbabalik ng posisyon (index) kung saan unang lumilitaw ang isang tiyak na string sa loob ng isang string. Kung matagpuan, nagbabalik ito ng index na 0 o higit pa; kung hindi, nagbabalik ng -1. Dahil case-sensitive, maaaring kailanganin ng karagdagang pag-aayos kung kinakailangan.

Halimbawa ng paggamit

text = "apple, orange, banana"
index = text.find("orange")
print(index)  # 7
Sa halimbawang ito, ang string "orange" ay lumilitaw sa ika-7 na posisyon sa loob ng string text, kaya nagbabalik ng 7. Kung hahanapin ang "grape", hindi ito matatagpuan kaya nagbabalik ng -1.

Pag-apply: Hindi isinaalang-alang ang case

Kung nais maghanap nang hindi iniintindi ang case, maaaring gamitin ang lower() method upang gawing maliit na titik ang buong string bago maghanap.
text = "Python is Great"
index = text.lower().find("great")
print(index)  # 10

Mga kalamangan at kahinaan ng find() method

Kalamangan
  • Dahil makukuha ang unang posisyon ng isang substring, maaaring gamitin ang impormasyong ito sa mga operasyon.
  • Simple at madaling gamitin.
Kahinaan
  • May case-sensitivity, kaya kung nais gawing pare-pareho, kailangan ng karagdagang pagproseso.
  • Tinutukoy lamang ang unang nahanap na bahagi at hindi sumusuporta sa maraming tugma.

4. Paraan 3: Hanapin ang huling posisyon ng paglitaw gamit ang rfind() method

rfind() method

rfind() method ay nagsasagawa ng paghahanap mula sa kanan ng string at nagbabalik ng index ng unang natagpuang string. Ang method na ito ay kabaligtaran ng find() na naghahanap mula sa kaliwa. Kapag hindi nahanap, nagbabalik ang rfind() ng -1.

Halimbawa ng paggamit

text = "apple, orange, apple, banana"
index = text.rfind("apple")
print(index)  # 14
Sa halimbawang ito, ibinabalik ang index na 14, na siyang index ng huling lumilitaw na "apple". Hindi tulad ng find(), dahil naghahanap mula sa kanan, ibinabalik nito ang huling apple.

Mga aplikasyon ng rfind() method

Ang rfind() method ay kapaki-pakinabang kapag nais mong manipulahin lamang ang huling paglitaw ng isang partikular na pattern na lumilitaw nang maraming beses. Halimbawa, magagamit ito sa mga log file o mahabang teksto upang matukoy ang huling error o keyword na lumilitaw.

Kalamangan at kahinaan ng rfind() method

Kalamangan
  • Epektibo sa pagtukoy ng huling lumilitaw na substring.
  • Maaaring magamit sa malawakang pagsusuri ng teksto at pagproseso ng mga log.
Kahinaan
  • Hindi kayang kunin ang maraming paglitaw nang sabay-sabay.
侍エンジニア塾

5. Paraan 4: Mas mataas na paghahanap gamit ang regular expression (re.search())

Ano ang regular expression

Ang regular expression (Regex) ay isang makapangyarihang tool para sa pattern matching ng mga string. Sa Python, maaaring magsagawa ng paghahanap gamit ang regular expression sa pamamagitan ng re module. Epektibo ito sa paghahanap ng tiyak na mga pattern o sa flexible na partial matching.

Halimbawa ng paggamit: re.search()

import re
text = "apple, orange, banana"
match = re.search(r"ora[a-z]*", text)
if match:
    print(match.group())  # orange
Sa halimb ito, hinahanap ang mga salita na nagsisimula sa "ora" at sinusundan ng mga maliit na titik na alpabeto (sa kasong ito, "orange"). Sa pamamagitan ng paggamit ng regular expression, nagiging mas flexible ang paghahanap.

Halimbawa ng aplikasyon: Paghahanap ng maramihang pattern

Kung nais maghanap ng maraming pattern nang sabay-sabay, maaaring tukuyin ang iba’t ibang pattern gamit ang re module. Halimbawa, nakakatulong ito sa paghahanap ng mga string na nagaman ng mga numero o tiyak na mga simbolo.
match = re.search(r"d+", "apple 123 banana")
if match:
    print(match.group())  # 123

Mga kalakasan at kahinaan ng regular expression

Kalakasan
  • Kayang magproseso nang flexible ng komplikadong mga pattern at partial matches.
  • Angkop para sa malawakang text analysis at pag-extract ng pattern mula sa data.
Kahinaan
  • Mahirap ang syntax ng regular expression at mataas ang learning curve para sa mga baguhan.
  • Minsan bumabagal ang pagproseso.

6. Paghahambing at Pagpili ng Bawat Metodo

Talahanayan ng Paghahambing

ParaanNilalaman ng ProsesoKalakasanKahinaan
inPagkakaroon o kawalan ng bahagi ng stringSimple at mabilisMay pagkakaiba sa malaki at maliit na titik
find()Paghahanap ng indexBahaging tugma, makakakuha ng impormasyon sa posisyonSa unang paglitaw lamang
rfind()Paghahanap mula sa kananKunin ang huling posisyon ng paglitawSa huling paglitaw lamang
re.search()Gumagamit ng regular na ekspresyonFlexible at maaaring mag-match ng komplikadong patternMataas ang gastos sa pag-aaral, bumabagal ang bilis

Inirerekomendang Mga Sitwasyon ng Paggamit

  • Para sa simpleng paghahanap, gamitin ang operator na in.
  • Para makuha ang posisyon ng bahaging tugma, gamitin ang find() o rfind().
  • Para sa komplikadong paghahanap, gumamit ng regular na ekspresyon.

7. Buod

Mayroong iba’t ibang paraan upang suriin kung naglalaman ng isang string ang Python, mula sa mga simpleng paraan hanggang sa mga advanced. Sa artikulong ito, detalyado naming tinalakay ang in operator, find(), rfind(), at ang regular expression na re.search(). Bawat paraan ay may mga kalakasan at kahinaan, kaya kailangan ng tamang pagpili.
  • Simple na paghahanap ay gamit ang in operator.
  • Pagtukoy ng posisyon ng bahagi ng tugma ay gamit ang find() o rfind().
  • Komplikadong paghahanap ay gamit ang regular expression.
Sa inyong mga programa, piliin ang tamang paraan batay sa sitwasyon upang epektibong magsagawa ng paghahanap ng string. Kung may mga tanong o komento, ipaalam ito sa seksyon ng komento!
年収訴求