নিয়মিত এক্সপ্রেশন php অক্ষর প্রতিস্থাপন. পিএইচপি রেগুলার এক্সপ্রেশন। বর্জিত অক্ষর ক্লাস

পিএইচপি, একটি আধুনিক প্রোগ্রামিং ভাষার উপযোগী, রেগুলার এক্সপ্রেশন ব্যবহার করার জন্য ডেভেলপারকে ফাংশনের একটি সেট অফার করে। আপনি জটিল মানদণ্ড ব্যবহার করে অন্যান্য স্ট্রিংগুলিতে স্ট্রিংগুলির উপস্থিতি অনুসন্ধান করতে পারেন।

  • PREG_PATTERN_ORDER;
  • PREG_SET_ORDER

রেগুলার এক্সপ্রেশন নম্বর (ডিফল্ট) দ্বারা বিকল্প 1 গোষ্ঠী অনুসন্ধান ফলাফল অনুসারে সাজান। দ্বিতীয় ক্ষেত্রে, ফলাফল সারিতে তাদের অবস্থান দ্বারা গোষ্ঠীভুক্ত করা হয়।

প্রতীক - টেমপ্লেট উপাদান

এটা মনে রাখা গুরুত্বপূর্ণ যে টেমপ্লেটটি প্রতীকের উপর কাজ করে। প্রোগ্রামিং "অক্ষর" ডেটা টাইপ কী তা দীর্ঘদিন ধরে ভুলে গেছে। আধুনিক ভাষাগুলি "স্ট্রিং" এর ধারণার নীচে যায় না, তবে প্যাটার্নের ক্ষেত্রে, আপনাকে বুঝতে হবে: এখানে প্রতীকগুলি ম্যানিপুলেট করা হয়েছে।

একটি টেমপ্লেট তৈরি করা হল, প্রথমত, অক্ষরের প্রয়োজনীয় ক্রম নির্দিষ্ট করা। আপনি যদি এটি পরিষ্কারভাবে বুঝতে পারেন, তাহলে টেমপ্লেটে কোনো ত্রুটি থাকবে না। যে কোনও ক্ষেত্রে, এটি অনেক কম হবে।

  • a হল টেমপ্লেটের একটি নির্দিষ্ট উপাদান - একটি প্রতীক।
  • a-z হল একটি টেমপ্লেট উপাদান, একটি অক্ষরও, কিন্তু শুধুমাত্র a থেকে z পর্যন্ত মান সহ - সমস্ত ল্যাটিন ছোট হাতের অক্ষরে।
  • 0-9 হল একটি সংখ্যা, যেকোনো সংখ্যা, কিন্তু 1-3 হল মাত্র 1, 2 বা 3।

প্যাটার্ন মধ্যে কেস গুরুত্বপূর্ণ. প্যাটার্নের প্রথম এবং শেষ অক্ষর উল্লেখযোগ্য। টেমপ্লেটটি কোথায় শুরু এবং শেষ হবে তা আপনি উল্লেখ করতে পারেন।

ফাংশন টেমপ্লেট

PHP preg ম্যাচ সবই স্ট্যান্ডার্ড রেগুলার এক্সপ্রেশন সিনট্যাক্স ব্যবহার করে। তাদের মধ্যে নির্দেশিত প্রতীকগুলির একটি নির্দেশ করুন:

  • শুধুমাত্র a, b, c অক্ষর।
  • [^ABC] A, B, C অক্ষর ছাড়া সবকিছু।
  • \w এবং \W - পাঠ্য বা নন-টেক্সট অক্ষর।
  • \s এবং \S - হোয়াইটস্পেস বা নন-হোয়াইটস্পেস অক্ষর।
  • \d এবং \D - অঙ্ক বা অ-সংখ্যা।

পুনরাবৃত্তি অক্ষরগুলি কোঁকড়া ধনুর্বন্ধনী দ্বারা নির্দেশিত হয় - (n,m) এবং পূর্ববর্তী অক্ষরটি উল্লেখ করুন।

  • n "এর চেয়ে কম নয়" এর পুনরাবৃত্তি বোঝায়;
  • m - "আর নেই" এর পুনরাবৃত্তি।

সিনট্যাক্সটি টেমপ্লেট তৈরির জন্য অনেকগুলি বিকল্প সরবরাহ করে, তবে মূল বিষয়গুলি দিয়ে শুরু করা ভাল, অর্থাৎ, আপনার নিজের হাতে লেখা সাধারণগুলি দিয়ে, যেখানে জটিল উপাদান এবং সংমিশ্রণ অনুপস্থিত।

সহজভাবে বলতে গেলে, প্রয়োজনীয় প্রকৃত অক্ষর তালিকাভুক্ত করে, তাদের প্রয়োজনীয় পরিমাণ নির্দেশ করে এবং "^" অক্ষরটি শুরুর সাথে এবং লাইনের শেষে "$" এর সাথে মিলে যায়, আপনি সাধারণ টেমপ্লেট তৈরি করতে পারেন। যোগ্য বিশেষজ্ঞদের কাছ থেকে বাস্তব, ভাল-ডিবাগ করা রেগুলার এক্সপ্রেশন বিশ্লেষণ করে, আপনি প্রিগ ম্যাচের সমস্ত জটিল অ্যাপ্লিকেশন তৈরি করতে কঠিন জ্ঞান অর্জন করতে পারেন। পিএইচপি এর অস্ত্রাগার শুধুমাত্র এই দুটি ফাংশনের মধ্যে সীমাবদ্ধ নয়, তবে তারা সবচেয়ে বেশি ব্যবহৃত হয়।

সহজ অনুশীলন

পূর্ণসংখ্যা প্যাটার্ন:

  • "/*/"

এছাড়াও একটি পূর্ণসংখ্যা প্যাটার্ন, তবে সামনে একটি চিহ্ন থাকতে পারে ("+", "-"), এবং সামনে/পিছনে অতিরিক্ত স্পেস থাকতে পারে:

  • /^[\s|\+|\-](0,1)*/

একইভাবে:

  • /^[\s|\+|\-](0,1)*(\.)*/ - একটি বিন্দু সহ একটি সংখ্যা।
  • /+@+\.(2,3)/ - ই-মেইল স্বীকৃতির বিকল্প।

প্রিগ ম্যাচের জন্য আপনার নিজস্ব টেমপ্লেটগুলি ব্যবহার করে, ইন্টারনেটে সেগুলির উদাহরণ, ওয়েবসাইট পৃষ্ঠাগুলির কোড বিশ্লেষণ এবং অন্যান্য উত্সগুলি আপনাকে টেমপ্লেটগুলির নিজস্ব লাইব্রেরি তৈরি করতে দেয়৷

তথ্য খোঁজার জন্য অনেক অপশন আছে. বিশেষ করে, উপরে দেওয়া শেষ দুটি নির্মাণ ভিন্নভাবে মডেল করা যেতে পারে। অনেক ক্ষেত্রে, টেমপ্লেটকে অগ্রাধিকার দেওয়া হবে যা দ্রুত এবং আরও সঠিকভাবে পছন্দসই মিল সরবরাহ করে। PHP-এ সমস্ত প্রিগ ম্যাচ ব্যবহার করার পাশাপাশি অন্যান্য ভাষায় অনুরূপ ফাংশন ব্যবহার করার জন্য অনুশীলন, মনোযোগ এবং টেমপ্লেটগুলির সঠিকতা প্রাথমিক পরীক্ষা প্রয়োজন।

এই নিবন্ধটি php regexp উদাহরণগুলির একটি নির্বাচন প্রদান করে। নিয়মিত এক্সপ্রেশন উদাহরণের একটি খুব সুন্দর এবং দরকারী সংগ্রহ. সমস্ত নিয়মিত অভিব্যক্তি উদাহরণ PHP-এর জন্য গ্রহণযোগ্য। আপনার স্বাস্থ্যের জন্য এটি উপভোগ করুন!

ডোমেন নাম যাচাইকরণের উদাহরণ

এই php স্নিপেট স্ট্রিংটি একটি বৈধ ডোমেন নাম কিনা তা পরীক্ষা করে।

?:.*)+):?(d+)?/?/i", $url)) ( প্রতিধ্বনি "আপনার ইউআরএল ঠিক আছে।"; ) অন্য ( প্রতিধ্বনি "ভুল ইউআরএল।";)

পাঠ্যে একটি শব্দ হাইলাইট করার উদাহরণ

পাঠ্যে কাঙ্খিত শব্দ অনুসন্ধান এবং হাইলাইট করার জন্য একটি খুব দরকারী নিয়মিত অভিব্যক্তি। অনুসন্ধান ফলাফল আউটপুট তৈরি করার সময় কোডটি বিশেষভাবে কার্যকর।

$text = "ComunitasWeb থেকে নমুনা বাক্য, regex ওয়েব প্রোগ্রামিং-এ জনপ্রিয় হয়ে উঠেছে। এখন আমরা regex শিখি। উইকিপিডিয়া অনুযায়ী, রেগুলার এক্সপ্রেশন (সংক্ষেপে regex বা regexp, যার বহুবচন regexes, regexps, বা regexen) একটি আনুষ্ঠানিকভাবে লেখা হয়। ভাষা যা একটি নিয়মিত এক্সপ্রেশন প্রসেসর দ্বারা ব্যাখ্যা করা যেতে পারে"; $text = preg_replace("/b(regex)b/i", " 1", $text); echo $text;

অনুসন্ধান ফলাফল হাইলাইট বাস্তবায়নের একটি উদাহরণওয়ার্ডপ্রেস

search.php ফাইল খুলুন এবং the_title() ফাংশন খুঁজুন। নিম্নলিখিত লাইন দিয়ে এটি প্রতিস্থাপন করুন:

প্রতিধ্বনি $title;

এখন, প্রতিস্থাপিত লাইনের আগে, এই কোডটি সন্নিবেশ করুন:

\0", $title); ?>

আপনার search.php ফাইল সংরক্ষণ করুন এবং style.css খুলুন। এটিতে নিম্নলিখিত লাইন যোগ করুন:

Strong.search-excerpt (পটভূমি: হলুদ; )

থেকে ইমেজ প্রাপ্ত একটি উদাহরণHTML regexp পদ্ধতি

পিএইচপি কোডের এই অংশটি রেগুলার এক্সপ্রেশন ব্যবহার করে সমস্ত ছবি এবং তাদের ইউআরএল অনুসন্ধান করে।

$ছবি = অ্যারে(); preg_match_all("/(img|src)=("|")[^"">]+/i", $data, $media); আনসেট($ডেটা); $data=preg_replace("/(img|src)("|"|="|=")(.*)/i","$3",$media); foreach($data as $url) ( $info = pathinfo($url); if (isset($info["extension"])) ( if (($info["extension"] == "jpg") || ($info["extension"] == "jpeg") || ($info["extension"] == "gif") || ($info["extension"] == "png")) array_push($ ছবি, $url);))

সদৃশ শব্দগুলি সরানো হচ্ছে (কেস সংবেদনশীল)

প্রায়ই পুনরাবৃত্তি হয় যে শব্দ আছে? তাহলে এই রেগুলার এক্সপ্রেশনের উদাহরণ আপনার কাজে লাগবে।

$text = preg_replace("/s(w+s)1/i", "$1", $text);

ডুপ্লিকেট পয়েন্ট সরানো হচ্ছে

একই জিনিস, শুধুমাত্র পুনরাবৃত্তি পয়েন্ট সঙ্গে.

$text = preg_replace("/.+/i", ".", $text);

XML/HTML ট্যাগ ম্যাচিং

এই সাধারণ ফাংশনটি দুটি আর্গুমেন্ট নেয়: একটি ট্যাগ (যা আপনি মেলাতে চান), xml বা html কোড।

ফাংশন get_tag($tag, $xml) ( $tag = preg_quote($tag); preg_match_all("(<".$tag."[^>]*>(.*?).")", $xml, $maches, PREG_PATTERN_ORDER); $ ম্যাচ ফেরত; )

নির্দিষ্ট অ্যাট্রিবিউট মান সহ XHTML/XML ট্যাগগুলির জন্য অনুসন্ধান করুন৷

এই উদাহরণ পূর্ববর্তী ফাংশন অনুরূপ, শুধুমাত্র আপনি উল্লেখযোগ্যভাবে অনুসন্ধান প্রসারিত করতে পারেন, উদাহরণস্বরূপ খুঁজুন

.

ফাংশন get_tag($attr, $value, $xml, $tag=null) ( if(is_null($tag)) $tag = "\w+"; অন্য $tag = preg_quote($tag); $attr = preg_quote($ attr); $value = preg_quote($value); $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*।" (["\"])$value\\2[^>]*>(.*?)<\/\\1>/" preg_match_all($tag_regex, $xml, $maches, PREG_PATTERN_ORDER); $match ফেরত দিন; )

হেক্সাডেসিমেল রঙের মান খোঁজা

প্রদত্ত স্ট্রিংগুলিতে হেক্সাডেসিমেল রঙের মানগুলির সাথে মেলে একটি নিয়মিত অভিব্যক্তির একটি দুর্দান্ত উদাহরণ। এটা কিসের জন্য? হয়তো আপনি একটি CSS কোড কম্প্রেশন পরিষেবা, বা অনুরূপ কিছু লিখতে চান।

$string = "#555555"; যদি (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) ( echo "উদাহরণ 6 সফল।";)

অনুসন্ধান উদাহরণএকটি প্রদত্ত পৃষ্ঠায় শিরোনাম

regexp সহ পিএইচপি কোডের এই আকর্ষণীয় উদাহরণ ট্যাগগুলির মধ্যে পাঠ্য খুঁজে বের করে এবং ফেরত দেয় এবং.

Feof($fp))( $page .= fgets($fp, 4096); ) $titre = eregi(" (.*)",$পৃষ্ঠা,$regs); echo $regs; fclose($fp);

Apache লগ পার্সিং

বেশিরভাগ সাইটই সুপরিচিত অ্যাপাচি সার্ভারে চলে। যদি আপনার সাইটটিও এটিতে চলে, তাহলে আপনি php regexp ব্যবহার করে সার্ভার লগ পার্স করতে পারেন।

//লগস: Apache ওয়েব সার্ভার //শুধুমাত্র HTML ফাইলগুলিতে সফল হিট৷ পৃষ্ঠা দর্শনের সংখ্যা গণনার জন্য দরকারী। "^((?#ক্লায়েন্ট আইপি বা ডোমেন নাম)S+)s+(?#বেসিক প্রমাণীকরণ)S+s+S+)s+[(?#তারিখ এবং সময়)[^]]+)]s+"(?: GET|POST|HEAD) ((?#file)/[^ ?]+?.html?)??((?#প্যারামিটার)[^ ?]+)? HTTP/+"s+(?#status code)200s+((?#bytes স্থানান্তরিত)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent) )[^"]*)"$" //লগ: Apache ওয়েব সার্ভার //404 ত্রুটি শুধুমাত্র "^((?#ক্লায়েন্ট আইপি বা ডোমেন নাম)S+)s+(?#বেসিক প্রমাণীকরণ)S+s+S+) s+[((?#তারিখ এবং সময়)[^]]+)]s+"(?:GET|POST|HEAD) ((?#ফাইল)[^?"]+)??((?#প্যারামিটার)[ ^?"]+)? HTTP/+"s+(?#status code)404s+((?#bytes স্থানান্তরিত)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent) )[^"]*)"$"

পাসওয়ার্ড জটিলতা পরীক্ষা করার উদাহরণ

একটি নিয়মিত অভিব্যক্তির একটি চমৎকার উদাহরণ যা একটি পাসওয়ার্ডের জটিলতা স্তর পরীক্ষা করে। পাসওয়ার্ডটি অবশ্যই 6 অক্ষর দীর্ঘ হতে হবে এবং এতে কমপক্ষে একটি বড় হাতের অক্ষর, একটি ছোট হাতের অক্ষর এবং একটি সংখ্যা থাকতে হবে৷

"A(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?) [-_a-zA-Z0-9](6,)z"

গ্রাফিক ইমোটিকন দিয়ে টেক্সট ইমোটিকন প্রতিস্থাপন

এই উদাহরণ কোডটি আপনার গ্রাফিক এক টেক্সট ইমোটিকন পরিবর্তন করবে. আকর্ষণীয় এবং দরকারী পিএইচপি স্নিপেট।

$texte="A text with a smiley:-)"; echo str_replace(":-)"," ",$texte);

একটি রেগুলার এক্সপ্রেশনের উদাহরণ যা থেকে ছবি পেতে হবেhtml কোড

এটা বলার অপেক্ষা রাখে না যে এই পিএইচপি কোডটি ওয়ার্ডপ্রেসে ছবি অনুসন্ধান এবং প্রক্রিয়া করার জন্য ব্যবহার করা হয়।

পোস্ট_কন্টেন্ট; $szSearchPattern = "~ ][ count($aPics); যদি ($iNumberOfPics > 0) ( // এখানে আপনি আপনার ছবিগুলি প্রক্রিয়া করতে পারেন // এই উদাহরণে সেগুলি কেবল মনিটরে প্রদর্শিত হবে ($i=0; $i)< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>

আমি আশা করি আপনি php regexp উদাহরণের এই সংগ্রহটি দরকারী খুঁজে পেয়েছেন। যদি নিয়মিত এক্সপ্রেশন (php) এর আকর্ষণীয় সংযোজন বা উদাহরণ থাকে তবে মন্তব্যে লিখুন।

ফাংশন বর্ণনা:

preg_replace ফাংশন একটি স্ট্রিং (বিষয়) এর ডেটা সহ একটি রেগুলার এক্সপ্রেশন (প্যাটার্ন) এর মিল অনুসন্ধান করে এবং প্রতিস্থাপনে পাওয়া ডেটা দিয়ে তাদের প্রতিস্থাপন করে।

যুক্তি

বর্ণনা

প্যাটার্ন

প্রয়োজনীয় যুক্তি।রেগুলার এক্সপ্রেশন (সার্চ প্যাটার্ন)

স্ট্রিং, অ্যারে

প্রতিস্থাপন

প্রয়োজনীয় যুক্তি।ডেটা প্রতিস্থাপনের জন্য ব্যবহৃত ডেটা ধারণকারী একটি স্ট্রিং বা অ্যারে বিষয়

আপনি লিঙ্কগুলির জন্য \$(1) ফর্মের একটি নির্মাণও ব্যবহার করতে পারেন, যা \$1 এর সমতুল্য; এই নির্মাণটি ব্যবহার করা হয় যদি লিঙ্কটি অবিলম্বে একটি সংখ্যা (\$(1)1) দ্বারা অনুসরণ করা হয়।

স্ট্রিং, অ্যারে
বিষয় প্রয়োজনীয় যুক্তি।প্রতিস্থাপিত করা হবে এমন ডেটা ধারণকারী একটি স্ট্রিং বা অ্যারে। স্ট্রিং, অ্যারে
সীমা

ঐচ্ছিক যুক্তি।প্রতিস্থাপনের সর্বাধিক সংখ্যা। ডিফল্ট হল -1 (সীমাহীন)

int
গণনা

ঐচ্ছিক যুক্তি।একটি পরিবর্তনশীল যা প্রতিস্থাপনের সংখ্যা ধারণ করে।

int

preg_replace() ফাংশনটি /e মডিফায়ারের সাথে ব্যবহার করা যেতে পারে। যখন এই সংশোধকটি উপস্থিত থাকে, তখন প্রতিস্থাপনের প্যারামিটারটিকে PHP কোড হিসাবে ব্যাখ্যা করা হয় এবং তারপর প্রতিস্থাপনের জন্য ব্যবহার করা হয়।

নিয়মিত অভিব্যক্তি

আলাদাভাবে, আমাদের নিয়মিত অভিব্যক্তিতে থাকা উচিত, যার বোঝা ছাড়া ফাংশনের কাজটি বোঝা বেশ কঠিন (যদি অসম্ভব না হয়) preg_replace()।

রেগুলার এক্সপ্রেশনের মোটামুটি ভালো বর্ণনা wikipedia.org-এ দেওয়া হয়েছে, রেগুলার এক্সপ্রেশন ব্যবহারের মূল বিষয়গুলোও বর্ণনা করা হয়েছে

উদাহরণ:

উদাহরণ 1:

এই উদাহরণে, আমরা বন্ধনীতে রাখা সমস্ত সংখ্যাকে তারকাচিহ্ন দিয়ে প্রতিস্থাপন করি।

উদাহরণ 2:

এই উদাহরণে, আমরা সম্পূর্ণ প্যাটার্নের সাথে সম্পর্কিত স্ট্রিংটিকে \$1 রেফারেন্সে প্রথম সাবপ্যাটার্নের সাথে সম্পর্কিত ডেটা দিয়ে প্রতিস্থাপন করি। অন্য কথায়, "3টি আপেল আছে" যা "/(\w+) (\d+) (\w+)/" এর সাথে সম্পর্কিত "have" দ্বারা প্রতিস্থাপিত হবে (\w+)।

উদাহরণ 3:

এই উদাহরণটি দেখায় যে আপনি প্যাটার্ন এবং প্রতিস্থাপন হিসাবে অ্যারে ব্যবহার করলে কি হবে।

উদাহরণ 4:

এই উদাহরণটি দেখায় যে আপনি প্যাটার্ন, প্রতিস্থাপন এবং বিষয় হিসাবে অ্যারে ব্যবহার করলে কি হবে।

উদাহরণ 5:

এই উদাহরণটি /e সংশোধকের ব্যবহার দেখায়, অর্থাৎ যখন প্রতিস্থাপনকে php কোড হিসাবে ব্যাখ্যা করা হয়। নীচে অক্ষরগুলিকে ছোট থেকে বড় হাতের অক্ষরে রূপান্তর করা হল।

উদাহরণ 6:

এই উদাহরণটি গণনা যুক্তির ব্যবহার দেখায়। এখানে ফলাফল 2 এর সমান হবে, তাই দুটি প্রতিস্থাপন ছিল।

মিশ্রিত preg_match(স্ট্রিং প্যাটার্ন, স্ট্রিং বিষয় [, অ্যারে এবং ম্যাচ [, int পতাকা [, int অফসেট]]])

প্যাটার্ন প্যাটার্নের সাথে মিলের জন্য প্রদত্ত পাঠ্য বিষয় অনুসন্ধান করে

অতিরিক্ত মিল পরামিতি নির্দিষ্ট করা হলে, এটি অনুসন্ধান ফলাফল দিয়ে পূর্ণ হবে। $maches এলিমেন্টে স্ট্রিংয়ের অংশ থাকবে যা সম্পূর্ণ প্যাটার্নের সাথে মেলে, $maches স্ট্রিংয়ের অংশ থাকবে যা প্রথম সাবপ্যাটার্নের সাথে মেলে এবং আরও অনেক কিছু।

পতাকা নিম্নলিখিত মান নিতে পারে:

PREG_OFFSET_CAPTURE

যদি এই পতাকা নির্দিষ্ট করা হয়, প্রতিটি পাওয়া সাবস্ট্রিংয়ের জন্য সোর্স স্ট্রিং-এ তার অবস্থান নির্দেশ করা হবে। এটি মনে রাখা গুরুত্বপূর্ণ যে এই পতাকাটি প্রত্যাবর্তিত ডেটার বিন্যাসকে পরিবর্তন করে: প্রতিটি ঘটনা একটি অ্যারে হিসাবে ফেরত দেওয়া হয়, যার জিরোথ উপাদানটি পাওয়া সাবস্ট্রিং ধারণ করে এবং প্রথম উপাদানটিতে অফসেট থাকে। এই পতাকাটি PHP 4.3.0 এবং উচ্চতর সংস্করণে উপলব্ধ।

পিএইচপি 4.3.0 থেকে অতিরিক্ত ফ্ল্যাগ প্যারামিটার উপলব্ধ।

অনুসন্ধানটি লাইনের শুরু থেকে বাম থেকে ডানে বাহিত হয়। ঐচ্ছিক অফসেট প্যারামিটারটি অনুসন্ধানের জন্য একটি বিকল্প শুরুর অবস্থান নির্দিষ্ট করতে ব্যবহার করা যেতে পারে। অতিরিক্ত অফসেট প্যারামিটার PHP 4.3.3 থেকে উপলব্ধ।

মন্তব্য:অফসেট প্যারামিটার ব্যবহার করা ফাংশন কল করার সময় মিলিত স্ট্রিংটিকে substr($subject, $offset) দিয়ে প্রতিস্থাপন করার সমতুল্য নয় preg_match_all(), যেহেতু প্যাটার্নে শর্ত থাকতে পারে যেমন ^ , $ বা (? . তুলনা করা:

যদিও এই উদাহরণ

ফাংশন preg_match()পাওয়া ম্যাচের সংখ্যা প্রদান করে। এটি 0 হতে পারে (কোনও মিল পাওয়া যায়নি) এবং 1 কারণ preg_match()প্রথম মিল খুঁজে পাওয়ার পর কাজ বন্ধ করে দেয়। আপনি যদি সমস্ত মিল খুঁজে পেতে বা গণনা করতে চান তবে আপনার ফাংশনটি ব্যবহার করা উচিত preg_match_all(). ফাংশন preg_match()রিটার্ন মিথ্যাযদি মৃত্যুদন্ড কার্যকর করার সময় কোন ত্রুটি ঘটে।

সূত্র:ফাংশন ব্যবহার করবেন না preg_match(), যদি আপনি একটি প্রদত্ত স্ট্রিং মধ্যে একটি সাবস্ট্রিং উপস্থিতি জন্য পরীক্ষা করতে হবে. এর জন্য ব্যবহার করুন strpos()বা strstr()যেহেতু তারা এই কাজটি অনেক দ্রুত সম্পন্ন করবে।


উদাহরণ 2. পাঠ্যে "ওয়েব" শব্দটি অনুসন্ধান করুন৷

/*
প্যাটার্নে বিশেষ ক্রম \b মানে একটি শব্দের সীমানা,
অতএব, শুধুমাত্র "ওয়েব" শব্দের একটি বিচ্ছিন্ন ঘটনা মিলবে
মুখোশ, "ওয়েবিং" বা "কোবওয়েব" এর বিপরীতে।
*/
যদি (preg_match("/\bweb\b/i" , "পিএইচপি হল পছন্দের ওয়েব স্ক্রিপ্টিং ভাষা।")) {
প্রতিধ্বনি "এন্ট্রি পাওয়া গেছে।";
) অন্য (
প্রতিধ্বনি "কোন এন্ট্রি পাওয়া যায়নি।";
)preg_match ("/\bweb\b/i" , "পিএইচপি হল পছন্দের ওয়েবসাইট স্ক্রিপ্টিং ভাষা।")) {
প্রতিধ্বনি "এন্ট্রি পাওয়া গেছে।";
) অন্য (
প্রতিধ্বনি "কোন এন্ট্রি পাওয়া যায়নি।";
}
?>

আমি দীর্ঘদিন ধরে রেগুলার এক্সপ্রেশন বুঝতে চাইছি। যদিও "এটি খুঁজে বের করুন" একটি শক্তিশালী শব্দ। নিয়মিত অভিব্যক্তির একজন মাস্টার হয়ে ওঠার মহান শিল্প আয়ত্ত করতে, আপনাকে তাদের সাথে ক্রমাগত কাজ করতে হবে। সিনট্যাক্স, বিশেষ অক্ষর এবং সংশোধক শেখার জন্য এটি যথেষ্ট নয় - আপনাকে সেগুলি ব্যবহার করতে সক্ষম হতে হবে। এবং ব্যবহার করার ক্ষমতা অভিজ্ঞতার সাথে আসে।

এই পোস্টে আমি রেগুলার এক্সপ্রেশন ব্যবহারের উদাহরণ পোস্ট করব, যার কাজ আমি নিজেই বুঝেছি।

বিশেষ অক্ষরের সারণী

বিশেষ চরিত্র বর্ণনা
\ পালাবার প্রতীক। উদাহরণ: '/seo\/smo/'- যে লাইনে SEO/smo আছে তার সাথে মেলে।
^ ডেটা প্রতীকের শুরু। উদাহরণ: '/^seo/'— SEO শব্দ দিয়ে শুরু হওয়া একটি লাইনের সাথে মেলে।
$ ডেটা চিহ্নের সমাপ্তি। উদাহরণ: '/ব্লগ$/'— ব্লগ শব্দ দিয়ে শেষ হওয়া একটি লাইনের সাথে মেলে।
. লাইন ফিড ছাড়া অন্য কোনো অক্ষর। উদাহরণ: '/seo.ult/'- স্ট্রিং seopult, seo9ult, seo@ult, ইত্যাদির সাথে মেলে।
এই বন্ধনীগুলির ভিতরে তালিকাভুক্ত অক্ষর রয়েছে, যেগুলির মধ্যে যে কোনও একটি নির্দিষ্ট অবস্থানে উপস্থিত হতে পারে, তবে শুধুমাত্র একটি। উদাহরণ: '/সিওল্ট/'— শুধুমাত্র সিওপল্ট, সিওকল্ট বা সিওমল্ট সম্বলিত লাইন মিলবে।
| বা. নীচের উদাহরণ.
() সাবমাস্ক।
? পূর্ববর্তী অক্ষর বা সাবপ্যাটার্নের এক বা শূন্য ঘটনা।
* পূর্ববর্তী অক্ষর বা উপ-প্যাটার্নের যে কোনো সংখ্যা। শূন্য সহ।
+ এক বা একাধিক ঘটনা।
উদাহরণ: ‘/se+(op|om)?.*t/’- অক্ষর s, তারপর এক বা একাধিক অক্ষর e, যার পরে op বা om এর সংমিশ্রণটি একবার প্রদর্শিত হতে পারে, বা একবার নাও হতে পারে, তারপর যেকোন চিহ্নের সংখ্যা এবং t অক্ষর।
(ক, খ) a থেকে b পর্যন্ত পূর্ববর্তী অক্ষর বা সাবপ্যাটার্নের সংঘটনের সংখ্যা। উদাহরণ: (0,) - *, (0,1) - এর মতো?, (3,5) - 3, 4 বা 5টি পুনরাবৃত্তি।

রেগুলার এক্সপ্রেশন ব্যবহার করে পিএইচপি স্ক্রিপ্টের সহজ উদাহরণ:

1) পূর্ববর্তী এবং পরবর্তী অভিব্যক্তি।

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 // বক্সের পরে ing আসে এমন একটি শব্দ খুঁজুন। যদি শব্দটি পাওয়া যায়, ফাংশনটি সত্য হবে, যদি না হয়, মিথ্যা।$pattern1 = "/বক্স(?=ing)/" ; preg_match($pattern1, "বক্স ডে"); // মিথ্যা preg_match ($pattern1, "বক্সিং ডে" ); // সত্য // এমন একটি শব্দ খুঁজুন যেখানে বক্সের পরে ing নেই। যদি শব্দটি পাওয়া যায়, ফাংশনটি সত্য হবে, যদি না হয়, মিথ্যা।$pattern2 = "/বক্স(?!ing)/" ; preg_match($pattern2, "iPhone এবং iPad এর জন্য বক্স"); // true preg_match ($pattern2, "বক্সিং ডে কি?"); // মিথ্যা preg_match ($pattern2, "css-moz-box-shadow" ); // সত্য // এমন একটি শব্দ খুঁজুন যেখানে বক্সের আগে ing নেই। যদি শব্দটি পাওয়া যায়, ফাংশনটি সত্য হবে, যদি না হয়, মিথ্যা।$pattern3 = "/(?

[^<]+?~","seo ব্লগ",$text); echo $text; ?>

3) একটি প্রদত্ত সাইটের অ্যালেক্সা র্যাঙ্ক মান পান এবং প্রদর্শন করুন।

1 2 3 4 5 6 7 8 9 "#
(.*?)
#si", file_get_contents ( "http://www.alexa.com/siteinfo/($url)"), $a); রিটার্ন ট্রিম (str_replace ("," , "" , strip_tags ($a [ 1 ] ) ) ); ) $alexa = alexa($url); ইকো $আলেক্সা ; ?>

(.*?)

#si", file_get_contents("http://www.alexa.com/siteinfo/($url)"), $a); রিটার্ন ট্রিম(str_replace(",","",strip_tags($a))); ) $alexa = alexa($url); echo $alexa; ?>

4) পাতার শিরোনাম পান এবং প্রদর্শন করুন।

1 2 3 4 5 (.*)<\/title>/s" , $str , $m ) ; echo $m [ 1 ] ; ?>

(.*)<\/title>/s", $str, $m); echo $m; ?>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 \n \r \t ]/", "" , $content ); // স্পেস দিয়ে নিউলাইন এবং ট্যাব অক্ষর প্রতিস্থাপন করুন$content = preg_replace ("/(2,)/" , " " , $content ); // একটি দিয়ে 2টির বেশি স্পেস প্রতিস্থাপন করুন preg_match_all("/ ]*href=(?:"| \" )(.*)(?:"|\" )[^<>]*>(.*)<\/a>/iU", $content , $links); // লিঙ্ক সংগ্রহ করুন যদি (আকারের ($লিংক [ 1 ] ) > 0 ) // যদি লিঙ্ক পাওয়া যায়( $out = অ্যারে (); // বহিরাগত লিঙ্কের অ্যারে foreach ($links [ 1 ] $v হিসাবে ) ( যদি (preg_match ("/http:\/\/(www\.)(0,1)"। $domain। "/i" , $v ) // অভ্যন্তরীণ লিঙ্ক আগাছা( চালিয়ে যান ; ) যদি ( preg_match ( "/(http:|https:)?\/\/(www\.)(0,1)(.*)/i", $v)) // বাহ্যিক রেফারেন্স( $out = $v ; ) ) $out ফেরত ; ) রিটার্ন অ্যারে (); ) $domain = "সাইট" ; $content = file_get_contents ("http://site/" ); $getoutlinks = getoutlinks($content, $domain); জন্য ($i = 0; $i<= count ($getoutlinks ) ; $i ++ ) { echo $getoutlinks [ $i ] . "
" ; } ?>

]*href=(?:"|\")(.*)(?:"|\")[^<>]*>(.*)<\/a>/iU", $content, $links); // লিঙ্ক সংগ্রহ করুন যদি (sizeof($links) > 0) // যদি লিঙ্ক পাওয়া যায় ( $out = array(); // বহিরাগত লিঙ্কের অ্যারে ফরিচ ($links হিসাবে $v ) ( যদি (preg_match("/http:\/\/(www\.)(0,1)।"$domain."/i", $v)) // অভ্যন্তরীণ লিঙ্কগুলি আগাছা (চালিয়ে যান;) যদি (preg_match ("/(http:|https:)?\/\/(www\.)(0,1)(..com/"); $getoutlinks = getoutlinks($content, $domain); জন্য ($ $i = 0;$i<= count($getoutlinks); $i++) { echo $getoutlinks[$i]."
"; } ?>

কোথায়:
preg_replace- একটি নিয়মিত অভিব্যক্তি ব্যবহার করে অনুসন্ধান এবং প্রতিস্থাপন করে।
preg_match- একটি রেগুলার এক্সপ্রেশনের বিরুদ্ধে একটি চেক সঞ্চালন করে।
preg_match_all— সমস্ত মিল খুঁজে পায়, যখন preg_match শুধুমাত্র প্রথমটি খুঁজে পায়।
file_get_contents— ফাইলের বিষয়বস্তু এক লাইন হিসেবে পান।
ছাঁটা— একটি লাইনের শুরুতে এবং শেষে স্পেস সরিয়ে দেয়।
str_replace— সার্চ স্ট্রিংকে রিপ্লেসমেন্ট স্ট্রিং দিয়ে প্রতিস্থাপন করে।
strip_tags- একটি স্ট্রিং থেকে html এবং php ট্যাগ মুছে দেয়।
আকার— ভেরিয়েবলের উপাদানের সংখ্যা পায়।
গণনা— অ্যারের উপাদানের সংখ্যা বা বস্তুর বৈশিষ্ট্যের সংখ্যা গণনা করে।