පයිතන් නිත්ය ප්රකාශනවල අසම්පූර්ණ වරහන්
වරහන් ( ) කාර්යයන් දෙකක් කරයි -
සංකේත සමූහ කිරීම සහ කැපූරු කාර්යය. එහෙත්
සමූහ කිරීමට අවශ්ය නමුත්
කැපූරුවට තැබීමට අවශ්ය නැති නම් කුමක් කළ යුතුද? එවැනි
ගැටළුවක් විසඳීම සඳහා විශේෂ අසම්පූර්ණ
වරහන් (?: ) නිර්මාණය කර ඇත - ඒවා සමූහ කරයි,
නමුත් කැපූරුවට තබන්නේ නැත.
උදාහරණය
පහත උදාහරණයේ දී, පළමු වරහන් අපට අවශ්ය වන්නේ සමූහ කිරීම සඳහා වන අතර දෙවැන්න - කැපූරුව සඳහා ය. කෙසේ වෙතත්, වරහන් දෙකම දත්ත කැපූරුවට සුරක්ෂිත කරයි:
txt = 'abab123'
res = re.search('(ab)+([1-9]+)', txt)
එහි ප්රතිඵලයක් වශයෙන් අපගේ කැපූරු වල පහත දේ තිබෙනු ඇත:
print(res[0]) # 'abab123' මුද්රණය කරයි
print(res[1]) # 'ab' මුද්රණය කරයි
print(res[2]) # '123' මුද්රණය කරයි
උදාහරණය
පළමු වරහන් යුගලය සමූහ කිරීම පමණක් කරන නමුත් කැපූරුවට තබන්නේ නැති ආකාරයට කරමු:
txt = 'abab123'
res = re.search('(?:ab)+([1-9]+)', txt)
එහි ප්රතිඵලයක් වශයෙන් පළමු කැපූරුවේ අපගේ අංකය ඇත:
print(res[1]) # '123' මුද්රණය කරයි