re මොඩියුලයේ finditer ක්රමය
re මොඩියුලයේ finditer ක්රමය
තන්තුවක රෙගුලරු ප්රකාශනය සමග
සියලුම ගැලපීම්වල පුනරාවර්තකයක් ආපසු ලබා දේ. ක්රමයේ පළමු පරාමිතියේ දී අපි
රෙගුලරු ප්රකාශනය දක්වන්නෙමු. දෙවන පරාමිතියේ දී අපි
රෙගුලරු ප්රකාශනය සොයන තන්තුව ලබා දෙන්නෙමු. තුන්වන
විකල්ප පරාමිතියේ දී සලකුණු ලබා දිය හැකිය.
මෙම ක්රමය වමේ සිට දකුණට සොයමින් සියලුම
ගැලපීම් පරීක්ෂා කරයි.
වාක්ය රචනා ක්රමය
import re
re.finditer(රෙගුලරු ප්රකාශනය, තන්තුව, [සලකුණු])
උදාහරණය
අපගේ තන්තුව තුළ ඇති සියලුම ඉලක්කම් සහිත උපතන්තු සොයා ගනිමු:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
<callable_iterator object at 0x000002AA891300A0>
උදාහරණය
දැන් අපි res විචල්යය නම් කරමු,
එහි අගය පෙර උදාහරණයේ දී අපට ලැබුණු
වස්තුව වේ. ඉන්පසු එය චක්රයකින්
හරහා ගමන් කරමු:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
කේතය ක්රියාත්මක කිරීමෙන් පසු අපට Match object වස්තු දෙකක් ලැබේ:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
මෙම වස්තු රෙගුලරු ප්රකාශනය සමග සියලුම ගැලපීම් පිළිබඳ තොරතුරු ටුපලයක් ආකාරයෙන් අඩංගු වේ. අපට ඒවායින් දර්ශකය අනුව ගැලපීම් මුද්රණය කළ හැකිය:
for el in res:
print(el[0])
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'123'
'456'
උදාහරණය
වැඩි පැහැදිලි බවක් සඳහා, ගැලපීම් සෙවීමේ දී අපි කාණ්ඩ (groups) භාවිතා කරමු. සහ වස්තු චක්රයකින් හරහා ගමන් කරන විට පළමු ගැලපීම (එය ශුන්ය කාණ්ඩය ලෙස සැලකේ) මුද්රණය කරමු, සහ එහි මූලද්රව්ය ද, ඒ සියල්ලම පිළිවෙලින් කාණ්ඩවලට බෙදා වෙන් කරමු:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
කේතය ක්රියාත්මක කිරීමෙන් පසු අපට ශුන්ය කාණ්ඩය, එනම් සම්පූර්ණ උපතන්තුව, සහ පළමු සහ දෙවන අක්ෂර එම උපතන්තුවෙන් ලැබේ:
'12' '1' '2'
'45' '4' '5'
මෙයත් බලන්න
-
findallක්රමයreමොඩියුලයේ,
එය තන්තුවක ඇති සියලුම ගැලපීම්වල ලැයිස්තුවක් ආපසු ලබා දේ -
searchක්රමයreමොඩියුලයේ,
එය තන්තුවක පළමු රෙගුලරු ප්රකාශන ගැලපීම සොයයි -
matchක්රමයreමොඩියුලයේ,
එය තන්තුවේ ආරම්භයේ රෙගුලරු ප්රකාශනයක් සමග ගැලපීම සොයයි -
fullmatchක්රමයreමොඩියුලයේ,
එය තන්තුවක ඇති සියලුම රෙගුලරු ප්රකාශන ගැලපීම් සොයයි -
Match objectවස්තුවreමොඩියුලයේ,
එය රෙගුලරු ප්රකාශනය සමග ගැලපීම් පිළිබඳ තොරතුරු අඩංගු වේ -
splitක්රමයreමොඩියුලයේ,
එය තන්තුවක් නිශ්චිත වෙන්කරන්නා අනුව ලැයිස්තුවකට කඩා දමයි