PHP රෙගුලරු ප්රකාශන වල ඉදිරිපස බැලීම
සමහර විට මෙවැනි කාර්යයක් විසඳීමට අවශ්ය වේ: අනුපිළිවෙල
'aaa' සොයා එය '!' ලෙස ප්රතිස්ථාපනය කරන්න,
නමුත් කෙලින්ම 'aaa' ට පසුව
'x' පවතී නම් පමණි, සහ 'x' ස්වයංක්රීයව
ප්රතිස්ථාපනය නොකරන්න. අපි මෙම කාර්යය 'කෙලින්ම'
විසඳීමට උත්සාහ කළහොත්, එය සාර්ථක නොවනු ඇත:
<?php
preg_replace('#aaax#', '!', 'aaax'); // වන්නේ '!', නමුත් '!x' විය යුතුය
?>
මෙම කාර්යය විසඳීම සඳහා,
'x' ප්රතිස්ථාපනය නොකළ යුතු බව පැවසීමේ ක්රමයක්
අවශ්ය වේ. මෙය සිදු කරනු ලබන්නේ විශේෂ වරහන් (?= ) භාවිතා කරමිනි,
එය සරලව බලාගෙන සිටින නමුත් ග්රහණය කර නොගනී.
මෙම වරහන් හැඳින්වෙන්නේ ධනාත්මක ඉදිරිපස බැලීම
ලෙසය. ධනාත්මක - මන්ද යත් 'x'
(අපගේ නඩුවේදී) පැවතිය යුතුය - එවිට පමණක්
ප්රතිස්ථාපනය සිදුවනු ඇත.
අපි අපගේ කාර්යය විසඳීම සඳහා මෙම වරහන් යොදා ගනිමු:
<?php
preg_replace('#aaa(?=x)#', '!', 'aaax'); // ආපසු එවන්නේ '!x'
?>
ඍණාත්මක ඉදිරිපස බැලීම ද ඇත
- (?! ) - එය, ඊට පටහැනිව, යම්කිසි දෙයක්
පවතිය නොහැකි බව පවසයි. පහත උදාහරණයේ දී
ප්රතිස්ථාපනය සිදුවන්නේ, කෙලින්ම 'aaa' ට පසුව
'x' නොපවතී නම් පමණි:
<?php
preg_replace('#aaa(?!x)#', '!', 'aaab'); // ආපසු එවන්නේ '!b'
?>
ශ්රිත නාම අඩංගු පේළියක් ලබා දී ඇත:
<?php
$str = 'func1() func2() func3()';
?>
පේළියෙන් ශ්රිත නාම වල අරාව ලබා ගන්න.
ටැගයක් සහිත පේළියක් ලබා දී ඇත:
<?php
$str = '<a href="" class="eee" id="zzz">';
?>
මෙම ටැගයේ ගුණාංග නාම වල අරාව ලබා ගන්න.