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">';
?>
এই ট্যাগের অ্যাট্রিবিউটের নামগুলির একটি অ্যারে পান।