স্ট্রিংয়ের শেষ ঘটনাটি স্ট্রিংয়ের সাথে অন্য স্ট্রিংয়ের সাথে প্রতিস্থাপন করার জন্য খুব দ্রুত উপায়টি কি কেউ জানেন?
স্ট্রিংয়ের শেষ ঘটনাটি স্ট্রিংয়ের সাথে অন্য স্ট্রিংয়ের সাথে প্রতিস্থাপন করার জন্য খুব দ্রুত উপায়টি কি কেউ জানেন?
উত্তর:
আপনি এই ফাংশনটি ব্যবহার করতে পারেন:
function str_lreplace($search, $replace, $subject)
{
$pos = strrpos($subject, $search);
if($pos !== false)
{
$subject = substr_replace($subject, $replace, $pos, strlen($search));
}
return $subject;
}
TRUEযাই হোক না কেন ফিরে আসবে না। এটি যাই হোক না কেন স্ট্রিং ফিরিয়ে দেয়। যদি কোনও প্রতিস্থাপন করা যায় না তবে এটি আসলটি ফিরিয়ে দেয় $subject, ঠিক তেমন করুন substr_replace এবং str_replaceকরুন।
strpos — Find the position of the first occurrence of a substring in a string- সম্পাদনা: বাহ পিএইচপি প্রতিভা সত্যিই একটি ফাংশন বলা হয় strposএবং strrpos? ধন্যবাদ ....
অন্য 1-লাইনার তবে প্রাগ ছাড়াই:
$subject = 'bourbon, scotch, beer';
$search = ',';
$replace = ', and';
echo strrev(implode(strrev($replace), explode(strrev($search), strrev($subject), 2))); //output: bourbon, scotch, and beer
$string = 'this is my world, not my world';
$find = 'world';
$replace = 'farm';
$result = preg_replace(strrev("/$find/"),strrev($replace),strrev($string),1);
echo strrev($result); //output: this is my world, not my farm
নিম্নলিখিত পরিবর্তে কমপ্যাক্ট সমাধান পিসিআর পজিটিভ লুহ্যাড অ্যাডেরেন্সটি ব্যবহার করে আগ্রহের সাবস্ট্রিংয়ের শেষ ঘটনাটির সাথে মিলিত হতে পারে, এটি হ'ল স্ট্রস্ট্রিংয়ের একটি ঘটনা যা একই স্ট্রিংয়ের অন্য কোনও ঘটনা অনুসরণ করে না। সুতরাং উদাহরণটি এর last 'fox'সাথে প্রতিস্থাপন করে 'dog'।
$string = 'The quick brown fox, fox, fox jumps over the lazy fox!!!';
echo preg_replace('/(fox(?!.*fox))/', 'dog', $string);
আউটপুট:
The quick brown fox, fox, fox jumps over the lazy dog!!!
$string = 'The quick brown fox, fox, fox jumps over the lazy fox!!!'; echo preg_replace('/(fox(?!.*fox))/', 'dog', $string);
আপনি এটি করতে পারেন:
$str = 'Hello world';
$str = rtrim($str, 'world') . 'John';
ফলাফল হ্যালো জন ';
শুভেচ্ছা সহ
rtrimআপনি যা ভাবেন সেভাবে আচরণ করে না। এটি অনুসন্ধানের পংক্তিতে যে কোনও অক্ষর যে কোনও ক্রমে (এবং সর্বদা প্রতিস্থাপন সংযোজন করা হবে) থেকে শেষ হয়ে যাবে, যেমন "হ্যালো শব্দ" -> "হ্যালো জন", "হ্যালো লর্ড" -> "হ্যালো জন", "হ্যালো মোটর "->" হ্যালো মোটজোহন "," হ্যালো ওয়ার্ল্ডি "->" হ্যালো ওয়ার্ল্ডিয়া জন "।
এটিও কাজ করবে:
function str_lreplace($search, $replace, $subject)
{
return preg_replace('~(.*)' . preg_quote($search, '~') . '(.*?)~', '$1' . $replace . '$2', $subject, 1);
}
সামান্য আরও সংক্ষিপ্ত সংস্করণ আপডেট করুন ( http://ideone.com/B8i4o ):
function str_lreplace($search, $replace, $subject)
{
return preg_replace('~(.*)' . preg_quote($search, '~') . '~', '$1' . $replace, $subject, 1);
}
এটি একটি প্রাচীন প্রশ্ন, তবে সবাই কেন সহজ সরল রেজিএক্সএক্স-ভিত্তিক সমাধানটি উপেক্ষা করছেন? সাধারণ রেজিএক্সপ্যাক কোয়ান্টিফায়ার লোভী মানুষ! আপনি যদি কোনও প্যাটার্নের শেষ উদাহরণটি সন্ধান করতে চান তবে কেবল .*এর সামনে আটকে দিন। এখানে কীভাবে:
$text = "The quick brown fox, fox, fox, fox, jumps over etc.";
$fixed = preg_replace("((.*)fox)", "$1DUCK", $text);
print($fixed);
এটি "শিয়াল" এর শেষ উদাহরণটি "DUCK" তে প্রতিস্থাপন করবে , যেমনটি অনুমিত হওয়া এবং প্রিন্ট করা:
The quick brown fox, fox, fox, DUCK, jumps over etc.
$string = "picture_0007_value";
$findChar =strrpos($string,"_");
if($findChar !== FALSE) {
$string[$findChar]=".";
}
echo $string;
কোডটিতে থাকা ভুলগুলি ছাড়াও ফারুক উনালের সেরা অ্যা্যানসার রয়েছে। একটি ফাংশন কৌশল করে।
আপনি সর্বশেষ ম্যাচটি খুঁজে পেতে strrpos () ব্যবহার করতে পারেন।
$string = "picture_0007_value";
$findChar =strrpos($string,"_");
$string[$findChar]=".";
echo $string;
আউটপুট: ছবি_0007. মূল্য
একটি সংক্ষিপ্ত সংস্করণ:
$NewString = substr_replace($String,$Replacement,strrpos($String,$Replace),strlen($Replace));
স্ট্রিংয়ের শেষের সাথে ম্যাচ করতে একটি রেগ এক্সপ্রেশনে "$" ব্যবহার করুন
$string = 'The quick brown fox jumps over the lazy fox';
echo preg_replace('/fox$/', 'dog', $string);
//output
'The quick brown fox jumps over the lazy dog'
আগ্রহীদের জন্য: আমি এমন একটি ফাংশন লিখেছি যা প্রেগ_ম্যাচ ব্যবহার করে যাতে আপনি ডান হাত থেকে রেজেক্স ব্যবহার করে প্রতিস্থাপন করতে সক্ষম হন।
function preg_rreplace($search, $replace, $subject) {
preg_match_all($search, $subject, $matches, PREG_SET_ORDER);
$lastMatch = end($matches);
if ($lastMatch && false !== $pos = strrpos($subject, $lastMatchedStr = $lastMatch[0])) {
$subject = substr_replace($subject, $replace, $pos, strlen($lastMatchedStr));
}
return $subject;
}
বা উভয় বিকল্পের সংক্ষিপ্ত সংমিশ্রণ / প্রয়োগ হিসাবে:
function str_rreplace($search, $replace, $subject) {
return (false !== $pos = strrpos($subject, $search)) ?
substr_replace($subject, $replace, $pos, strlen($search)) : $subject;
}
function preg_rreplace($search, $replace, $subject) {
preg_match_all($search, $subject, $matches, PREG_SET_ORDER);
return ($lastMatch = end($matches)) ? str_rreplace($lastMatch[0], $replace, $subject) : $subject;
}
https://stackoverflow.com/a/3835653/3017716 এবং https://stackoverflow.com/a/23343396/3017716 এর উপর ভিত্তি করে
s($str)->replaceLast($search, $replace)যেমন পাওয়া যায় আপনি তেমন সহায়ক হতে পারেন ।