اینترنت پنجره ها اندروید

Preg جایگزین نمونه های PHP. عبارات منظم در پی اچ پی با نمونه

پی اچ پی، همانطور که به زبان برنامه نویسی مدرن فرض می شود، توسعه دهنده مجموعه ای از توابع را برای استفاده از عبارات منظم ارائه می دهد. شما می توانید خطوط را به خطوط دیگر در معیارهای پیچیده جستجو کنید.

  • preg_pattern_order؛
  • preg_set_order.

مرتب سازی بر اساس اولین تجسم، نتایج جستجو را با تعداد عبارات منظم (مقدار پیش فرض) افزایش می دهد. در مورد دوم، نتایج در محل مکان آنها گروه بندی می شود.

نماد - عنصر الگو

مهم است به یاد داشته باشید که الگو شخصیت ها را اجرا می کند. برنامه نویسی به مدت طولانی فراموش کرده است چه نوع داده ها "نماد" است. زبان های مدرن زیر مفهوم "رشته" را نمی بینند، بلکه در رابطه با قالب لازم است که درک شود: در اینجا نمادها را دستکاری کنید.

ساخت یک الگو، اول از همه، مشخص کردن توالی مورد نظر شخصیت ها است. اگر این به وضوح آموخته شود، هیچ خطایی در قالب وجود نخواهد داشت. در هر صورت، آن را بسیار کوچکتر خواهد بود.

  • a یک عنصر خاص از الگو است - نماد.
  • a-Z یک عنصر از یک قالب، همچنین یک شخصیت است، اما تنها با یک مقدار از A به Z، کل حلقه در ثبت نام پایین تر است.
  • 0-9 یک رقمی است، و هر کدام، اما 1-3 - تنها 1، 2 یا 3 است.

ثبت نام در قالب مهم است. نمادهای اول و آخرین الگو اهمیت زیادی دارند. شما می توانید مشخص کنید که کدام قالب شروع می شود و چگونه به پایان می رسد.

قالب تابع

PHP Preg Match همه از نحو استاندارد استاندارد استاندارد استفاده می کند. یکی از شخصیت هایی را که در آنها مشخص شده اند، نشان دهید:

  • فقط شخصیت های A، B، C.
  • [^ abc] همه به جز نمادها A، B، C.
  • \\ w و \\ W - متن یا نماد متن.
  • \\ s و \\ s یک عدد خالی است یا نه یک نماد خالی.
  • \\ d و \\ d - رقمی یا نه یک رقم.

نمادهای تکرار با براکت های فرفری (N، M) تعیین می شوند و متعلق به نماد قبلی هستند.

  • n تکرار "نه کمتر" را نشان می دهد؛
  • متر - تکرار "نه بیشتر."

Syntax گزینه های بسیاری برای ایجاد قالب ها را فراهم می کند، اما بهتر است از Azov شروع شود، یعنی ساده، شخصی نوشته شده است که در آن عناصر پیچیده و ترکیبات از دست رفته است.

به سادگی قرار دادن، شخصیت های واقعی که نیاز دارند، مشخص کردن مقادیر لازم خود را مشخص کرده و نماد "^" مربوط به ابتدای و "$" - پایان رشته، شما می توانید الگوهای ساده ایجاد کنید. تجزیه و تحلیل عبارات منظم به خوبی به خوبی ثابت شده از متخصصان واجد شرایط، شما می توانید دانش قوی برای ایجاد تمام برنامه های پیچیده Preg را به دست آورید. آرسنال پی اچ پی تنها توسط این دو توابع محدود نمی شود، اما اغلب آنها استفاده می شود.

عمل ساده

الگو برای یک عدد صحیح:

  • "/*/"

همچنین یک الگوی یک عدد صحیح، اما در جلو ممکن است نشانه ای باشد ("+"، "-")، و در جلو / عقب ممکن است فضاهای اضافی باشد:

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

به طور مشابه:

  • / \u003d [\\ s | \\ + | '-] (0.1) * ((.) * / - یک عدد با یک نقطه.
  • /[ایمیل محافظت شده]+ \\. (2.3) / - گزینه شناسایی ایمیل.

استفاده از قالب های خود را برای Preg Match همه، نمونه آنها در اینترنت، تجزیه و تحلیل صفحات سایت و سایر منابع به شما این امکان را می دهد که کتابخانه قالب خود را تشکیل دهید.

گزینه های جستجو برای اطلاعات ممکن است تنظیم شود. به طور خاص، دو طرح آخر می تواند به طور متفاوتی شبیه سازی شود. در بسیاری از موارد، اولویت الگو را که سریع تر و دقیق تر می شود، هماهنگی مطلوب را ارائه می دهد. کاربرد در PHP Preg Match همه، و همچنین توابع مشابه در زبان های دیگر، نیاز به شیوه ها، توجه و تایید اولیه از صحت الگوها.

این مقاله مجموعه ای از نمونه های PHP regexp را ارائه می دهد. مجموعه ای بسیار خوب و مفید از نمونه های عبارات منظم (عبارات منظم). تمام نمونه هایی از عبارات منظم برای PHP قابل قبول است. استفاده از سلامت!

مثال چک کردن یک نام دامنه

این، قطعه پی اچ پی چک می کند که آیا یک رشته یک نام دامنه معتبر است.

؟ * *) +) :؟ (D +)؟ /؟ / من "، $ url)) (echo" URL شما خوب است. "؛)؛ دیگر (echo" url اشتباه "؛)

یک مثال از برجسته کردن کلمه در متن

بیان منظم بسیار مفید، برای جستجو و روشن کردن کلمه مورد نظر در متن. به خصوص کد مفید است، هنگام ایجاد نتایج جستجو خروجی.

$ text \u003d "جمله نمونه از KomunitasWeb، Regex در برنامه نویسی وب محبوب شده است. در حال حاضر ما Regex را یاد می گیریم. بر اساس ویکی پدیا، عبارات منظم (به اختصار به عنوان regex یا regexp، با فرم های Pralxes، Regexps یا Regexen فرم های PRAL، به صورت رسمی نوشته شده است زبان که می تواند توسط یک پردازنده منظم بیان تفسیر شود "؛ $ text \u003d preg_replace ("/ b (regex) b / i"، " 1"، $ متن)؛ echo $ text؛

یک مثال از پیاده سازی نور پس زمینه از نتایج جستجو ازوردپرس

فایل search.php را باز کنید و تابع the_title () را پیدا کنید. آن را با رشته بعدی جایگزین کنید:

echo $ title؛

و در حال حاضر، این کد را قبل از رشته جایگزین قرار دهید:

\0"، $ عنوان)؛؟\u003e

فایل search.php خود را ذخیره کنید و style.css را باز کنید. خط زیر را به آن اضافه کنید:

strong.Search-excerpt (زمینه: زرد؛)

یک مثال از به دست آوردن تصاویر ازروش HTML Regexp

این قطعه کد پی اچ پی با استفاده از عبارات منظم، جستجو برای تمام تصاویر و آدرس URL به آنها.

$ تصاویر \u003d آرایه ()؛ preg_match_all ("/ img | src) \u003d (" | ") [^" "\u003e] + / i"، $ data، $ media)؛ UNSET (داده های $)؛ $ data \u003d preg_replace ("/ img | src) (" | "| \u003d" | \u003d ") (. *) / من"، "$ 3"، $ media)؛ foreach ($ داده ها به عنوان $ URL) ($ info \u003d pathinfo ($ url)؛ اگر (isset ($ info [extension "])) (اگر ($ info [" extension "] \u003d\u003d" jpg ") || ($ info ["extension"] \u003d\u003d "jpeg") || ($ info [extension »] \u003d\u003d" gif ") || ($ info [" extension "] \u003d\u003d" png ")) array_push ($ تصاویر، $ URL)؛))

حذف کلمات تکراری (به استثنای ثبت نام)

اغلب کلمات وجود دارد که تکرار می شوند؟ سپس مثال این عبارت منظم برای شما مفید خواهد بود.

$ text \u003d preg_replace ("/ s (w + s) 1 / i"، "$ 1"، $ text)؛

حذف امتیازات تکراری

همان، تنها با نقاط تکراری.

$ text \u003d preg_replace ("/.+/ I"، "."، $ text)؛

تطبیق تگ های XML / HTML

این ویژگی ساده طول می کشد دو استدلال: برچسب (تطبیق شما می خواهید برای پیدا کردن)، کد XMLI HTML.

تابع get_tag ($ tag، $ xml) ($ tag \u003d preg_quote ($ tag)؛ preg_match_all ("(<".$tag."[^>]*>(.*?). ")"، $ XML، $ مسابقات، preg_pattern_order)؛ بازگشت $ مسابقات؛ )

جستجو برای برچسب های XHTML / XML با مقادیر تعریف تعریف شده

این مثال مشابه ویژگی قبلی است، فقط شما می توانید به طور قابل توجهی جستجو را به عنوان مثال گسترش دهید

.

تابع get_tag ($ attr، $ value، $ xml، $ tag \u003d null) (iS_Null ($ tag)) $ tag \u003d "\\ w +"؛ else $ tag \u003d preg_quote ($ tag)؛ $ attr \u003d preg_quote ( $ atch) $ value \u003d preg_quote ($ ارزش)؛ $ tag_regex \u003d "/<(".$tag.")[^>] * $ attr \\ s * \u003d \\ s * "." (["\\"]) $ value \\\\ 2 [^\u003e] *\u003e (. *؟)<\/\\1>/ "preg_match_all ($ tag_regex، $ xml، $ tages، preg_pattern_order)؛ بازگشت $ مسابقات؛)

جستجو برای مقادیر رنگ HEX

یک نمونه عالی از یک عبارت منظم که به دنبال انطباق با مقادیر رنگ هگزادسیمال در خطوط مشخص شده است. این چیست؟ شاید شما می خواهید یک سرویس فشرده سازی کد CSS را بنویسید یا چیزی شبیه آن را بنویسید.

$ string \u003d "# 555555"؛ اگر (preg_match ("/ ^ # (؟ :(؟ :( 3)) (1،2)) $ / i"، $ string)) (echo "مثال 6 موفقیت آمیز"؛)

مثال جستجوعنوان در یک صفحه مشخص شده

این مثال جالب از کد پی اچ پی با REGEXP به دنبال آن است و متن بین برچسب ها را باز می گرداند. و.

Feof ($ fp)) ($ صفحه \u003d FGETS ($ fp، 4096)؛) $ totre \u003d reegi (" (.*)"، $ صفحه، $ regs)؛ echo $ regs؛ fclose ($ fp)؛

تجزیه لوک آپاچی.

اکثر سایت ها بر روی سرورهای آپاچی شناخته شده کار می کنند. اگر سایت شما نیز بر روی آن کار می کند، می توانید با استفاده از PHP ReGEXP یک بار تجزیه سرور سرور را ایجاد کنید.

// logs: آپاچی وب سرور // بازدید های موفق به فایل های HTML تنها. مفید برای شمارش تعداد نمایش صفحه. "^ ((؟ # مشتری IP یا نام دامنه) S +) S + ((؟ # تأیید اعتبار اساسی) S + S + S +) S + [((؟ # تاریخ و زمان) [^]] +) + "(؟: دریافت | ارسال | سر) (((؟ #file) / [^؟"] +؟ "HTML؟) ؟؟ ((؟ # پارامترها) [^؟"] +)؟ http / + "S + (؟ # کد وضعیت) 200s + ((؟ # bytes منتقل شده) [- 0-9] +) S +" ((؟ # ارجاع) [^ "] *)" S + "(( ؟ # عامل کاربر) [^ "] *)" $ "// logs: apache web server // 404 خطاهای تنها" ^ ((؟ # مشتری IP یا نام دامنه) S +) S + ((؟ # تأیید اعتبار اساسی) s + s + s +) s + [((؟ # تاریخ و زمان) [^]] +)] S + "(؟: دریافت | ارسال | سر) ((؟ #file) [^؟»] + ) ؟؟ ((؟ # پارامترها) [^؟ "] +)؟ http / + "s + (؟ # کد وضعیت) 404s + ((؟ # bytes منتقل شده) [- 0-9] +) S +" ((؟ # ارجاع) [^ "] *)" S + "( (؟ # عامل کاربر) [^ "] *)" $ "

مثال بررسی پیچیدگی رمز عبور

یک نمونه عالی از یک عبارت منظم که سطح پیچیدگی رمز عبور را بررسی می کند. رمز عبور باید شامل 6 کاراکتر باشد، حاوی حداقل: یک نماد عنوان، یک شخصیت کوچک، یک رقم.

"a (؟ \u003d [-_ a-za-za-z0-9]؟) (؟ \u003d [-_ a-za-za-z0-9] *؟) (؟ \u003d [-_ a-za-z0-9] *؟) [-_a-za-z0-9] (6،) z "

جایگزینی شکلک های متن بر روی شکلک های گرافیکی

این مثال مثال کد، شکلک متن را در گرافیک شما تغییر خواهد داد. جالب و مفید PHP Snippet.

$ texte \u003d "یک متن با یک لبخند :-)"؛ echo str_replace (":-)"، " "، $ texte)؛

یک مثال از یک عبارت منظم برای به دست آوردن تصاویر ازکد HTML

لازم به ذکر است که این کد پی اچ پی در وردپرس، برای جستجوی و پردازش تصویر استفاده می شود.

post_content؛ $ szsearchpattern \u003d "~ ] * /\u003e ~ "؛ // run preg_match_all برای گرفتن als iPics و صرفه جویی در نتایج در $ szsearchpattern، $ szpostContent، $ apics)؛ // بررسی کنید تا ببینید آیا حداقل 1 تصویر $ inumberoffics \u003d تعداد ($ apics ) اگر ($ inumberofpics\u003e 0) (/// در اینجا شما می توانید تصاویر خود را مدیریت کنید // در این مثال، آنها به سادگی در جهت ($ I \u003d 0؛ $ I< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>

امیدوارم برای انتخاب نمونه های PHP Regexp مفید باشد. اگر اضافات جالب یا نمونه هایی از عبارات منظم (PHP) وجود داشته باشد، در نظرات بنویسید.

(PHP 4، پی اچ پی 5، پی اچ پی 7)

preg_replace - جستجو و جایگزینی بیان منظم

فهرست پارامترها

الگوی مورد نظر این می تواند هر دو یک آرایه رشته و خطوط باشد.

همچنین برخی از اصلاح کننده های PCRE، از جمله منسوخ شده است " e."(Preg_replace_eval)، تنها برای این تابع خاص است.

جایگزینی

ردیف یا آرایه ای از ردیف ها برای جایگزینی. اگر این پارامتر یک رشته است، و الگوی یک آرایه است، تمام قالب ها با این رشته جایگزین خواهند شد. اگر الگوی و جایگزینی آرایه ها باشند، هر عنصر الگوی با عنصر مربوطه از جایگزینی جایگزین می شود. اگر آرایه جایگزینی شامل موارد کمتر از آرایه الگوی باشد، سپس تمام قالب های اضافی از الگوی با رشته های خالی جایگزین می شود.

جایگزینی ممکن است حاوی منابع باشد \\\\ n.یا (با شروع PHP 4.0.4) $ n، و آخرین گزینه ترجیح داده می شود. هر یک از این لینک ها با یک زیرمجموعه مربوط به n-podmack جایگزین می شود. n می تواند مقادیر 0 تا 99 را داشته باشد و لینک شود \\0 (یا $0 ) مربوط به ورود به کل قالب است. ماسک های Podmas از سمت چپ به راست شماره گیری می شوند، با شروع یک واحد. برای استفاده از سکته معکوس، باید کپی شود (رشته PHP "\\\\" ).

هنگام جایگزینی قالب با استفاده از مراجع به Podmascus، هنگامی که مستقیما پشت ماسک باید یک رقم باشد، وضعیت ممکن است رخ دهد (به عنوان مثال، تنظیم اعداد بلافاصله پس از ماسک همخوانی). در این مورد، استفاده از علامت آشنا از نوع غیرممکن است \\1 برای اشاره به اصلاحات. برای مثال، ضبط \\11 ، خجالت زدن preg_replace () از آنجا که او قادر به درک اینکه آیا شما می خواهید از لینک استفاده کنید \\1 به دنبال یک رقم 1 یا میخواهید فقط از لینک استفاده کنید \\11 پشت آن هیچ چیز نباید باشد اگر از طراحی استفاده می کنید، این سوء تفاهم را می توان حذف کرد. \${1}1 با استفاده از یک لینک جدا شده $1 ، و شماره کنار آن 1 .

هنگام استفاده از یک اصلاح کننده قدیمی e. این ویژگی برخی از شخصیت ها را سپری می کند (یعنی " , " , \ و null) در خطوطی که لینک ها را جایگزین می کنند. این کار برای تایید صحت نحو در هنگام استفاده از لینک ها در داخل نقل قول های تک یا دو نفره (به عنوان مثال، "Strlen (\\" $ 1 \\ ") + Strlen (" $ 2 ")") اطمینان حاصل کنید که شما دارای نحو پردازش ردیف ردیف پی اچ پی به منظور دقت درک کنید که چگونه رشته تفسیر به نظر می رسد.

موضوع.

ردیف یا آرایه ای از ردیف ها برای جستجو و جایگزینی.

اگر موضوع یک آرایه باشد، جستجو با جایگزینی برای هر عنصر آرایه Subcect انجام می شود و مقدار بازگشت نیز یک آرایه است.

حداکثر مقدار ممکن جایگزینی هر قالب برای هر خط موضوع. پیش فرض برابر است -1 (بدون محدودیت).

اگر مشخص شده باشد، این متغیر با تعداد جایگزینی پر شده است.

مقادیر بازگشت

preg_replace () اگر پارامتر موضوع یک آرایه باشد، یک آرایه را باز می گرداند، در غیر این صورت رشته بازگردانده می شود.

اگر همزمان ها یافت شوند، نسخه جدیدی از موضوع بازگشتی است، در غیر این صورت موضوع به دست می آید، در صورت خطا، آن را باز می گرداند خالی.

خطاهای

هنگام استفاده از یک اصلاح کننده قدیمی "\\ e" خطای سطح رانده می شود e_deprecated..

فهرست تغییرات

مثال ها

مثال # 1 با استفاده از یک وایستمن، به دنبال یک شکل

$ string \u003d "آوریل 15، 2003"؛
$ الگوی \u003d "/ (\\ w +) (\\ d +)، (\\ d +) / i"؛
$ جایگزینی \u003d "$ 1) 1، $ 3"؛
echo Preg_replace (الگوی $، $ جایگزینی، $ رشته)؛
?>

مثال # 2 استفاده از آرایه ها با شاخص های عددی به عنوان استدلال عملکرد preg_replace ()

$ string \u003d. "روباه قهوه ای سریع بیش از سگ تنبل پرش کرد.";
$ الگوها \u003d آرایه ()؛
الگوهای $ [0] \u003d "/ سریع /"؛
الگوهای $ [1] \u003d "/ براون /"؛
الگوهای $ [2] \u003d "/ روباه /"؛
$ replacements \u003d آرایه ()؛
$ جایگزینی [2] \u003d "خرس"؛
$ جایگزینی [1] \u003d "سیاه"؛
$ جایگزینی [0] \u003d "آهسته"؛

?>

نتیجه این مثال:

خرس سیاه آهسته بیش از سگ تنبل پرید.

مرتب سازی کلیدهای قالب ها و جایگزینی، نتیجه دلخواه را دریافت کنید:

kSORT (الگوهای $)؛
kSORT ($ جایگزین ها)؛
echo Preg_replace (الگوهای $، $ جایگزین، $ رشته)؛
?>

نتیجه این مثال:

خرس سیاه آهسته بیش از سگ تنبل پرید.

مثال # 3 جایگزینی برای چند قالب

$ الگوهای \u003d آرایه ( "/ (19 | 20) (\\ d (2)) - (\\ d (1،2)) - (\\ d (1،2)) /",
"/ ^ \\ s * ((\\ w +)) \\ s * \u003d /")؛
$ replore \u003d array ("\\ 3 / \\ 4 / \\ 1 \\ 2"، "$ \\ 1 \u003d")؛
echo Preg_replace ($ الگوها، $ جایگزین "(startdate) \u003d 1999-5-27")؛
?>

عبارات منظم به شما اجازه می دهد تا در رشته دنباله ای مطابق با الگو پیدا کنید. به عنوان مثال، الگو "Vasya (. *) Pupkin" به شما اجازه می دهد تا یک دنباله را پیدا کنید زمانی که بین کلمات Vasya و Pupkin هر تعداد از هر شخصیت خواهد بود. اگر شما نیاز به پیدا کردن شش رقم، پس ما نوشتن "(6)" (اگر، به عنوان مثال، از شش تا هشت رقم، و سپس "(6.8)"). در اینجا چنین چیزهایی را به عنوان یک اشاره گر مجموعه نماد و اشاره گر از مقدار مورد نیاز تقسیم می شود:

<набор символов><квантификатор><жадность>

به جای مجموعه ای از شخصیت ها، تعیین هر شخصیت - یک نقطه می تواند مورد استفاده قرار گیرد، یک مجموعه کاراکتر خاص می تواند مشخص شود (توالی ها پشتیبانی می شوند - "0-9"). این می تواند نشان داده شود "به جز این مجموعه شخصیت ها".

تعداد اشاره گر شخصیت ها در مستندات رسمی پی اچ پی "Quantifier" نامیده می شود. این اصطلاح مناسب است و منحنی ها را حمل نمی کند. بنابراین، مقدار کمی ممکن است هر دو مقدار خاصی داشته باشد - یا یکی از ثابت ("(6)") یا به عنوان یک فاصله عددی ("(6،8)") و انتزاعی "هر عدد، شامل 0" ("*" )، "هر عدد طبیعی" - از 1 به بی نهایت ("+": "سند + .txt")، "یا 0، یا 1" ("؟"). به طور پیش فرض، Quantifier برای این مجموعه از کاراکترها برابر با یک (document.txt ") است.

برای جستجوی انعطاف پذیر تر برای ترکیب، این مجموعه ها "نمادها - یک مقدار سنجی" می تواند به متاستولاتور ترکیب شود.

به عنوان یک ابزار انعطاف پذیر، عبارات منظم خم می شوند، اما نه کاملا: منطقه درخواست آنها محدود است. به عنوان مثال، اگر شما نیاز به جایگزینی یک ردیف ثابت به دیگری، دوباره ثابت، از str_replace استفاده کنید. توسعه دهندگان پی اچ پی به طرز شگفت انگیزی از این توابع پیچیده Ereg_replace یا Preg_replace استفاده نکردند، زیرا زمانی که آنها آنها را می نامند، تفسیر رشته رخ می دهد و این منابع سیستم را مصرف می کند. متاسفانه، این راک مورد علاقه شما از برنامه نویسان تازه کار پی اچ پی است.

استفاده از عبارات منظم فقط اگر شما دقیقا نمی دانید که "وجود دارد" ردیف. از نمونه ها: یک کد جستجو که در آن کاراکترهای سرویس و کلمات کوتاه از رشته جستجو و همچنین فضاهای اضافی (یا به جای آن، تمام فضاها فشرده می شوند: "+" با یک فضای جایگزین می شود). با کمک این توابع، کاربر ایمیل را بررسی می کنم که بازخورد شما را ترک می کند. بسیاری از مفید می تواند انجام شود، اما مهم است که در ذهن داشته باشید: عبارات منظم همه قدرتمند نیستند. به عنوان مثال، جایگزینی پیچیده در متن بزرگ بهتر است انجام شود. پس از همه، به عنوان مثال، یک ترکیب "(. *)" در برنامه برنامه به معنای انفجار تمام نمادهای متن است. و اگر قالب به ابتدای یا انتهای خط گره خورده باشد، الگو "حرکت" توسط برنامه از طریق کل متن، و به نظر می رسد دو نیروی بی رحم، و یا به جای نیروی خشن در مربع. دشوار است حدس بزنید که ترکیبی دیگر "(. *)" به معنای انفجار در کوبا و غیره است. درجه سوم، می گویند، 5 کیلوبایت متن. به نظر می رسد 125،000،000،000 (به عبارت کلمات: یکصد بیست و پنج میلیارد عملیات). البته، اگر شما به شدت رویکرد، عملیات زیادی وجود خواهد داشت، و چهار یا هشت برابر کمتر خواهد بود، اما مرتبه اعداد خود مهم است.

مجموعه ای از شخصیت ها

. نقطههر نماد
[<символы>] براکت مربعکلاس شخصیت ("هر یک از"). مثلا
[^<символы>] کلاس نماد منفی ("هر کسی جز")
- خط تیرهتعیین ترتیب در کلاس شخصیت ها ("" - اعداد)
\\ D. فقط اعداد
\\ D.[^0-9] علاوه بر اعداد
\\ W. حروف و اعداد
\\ W.[^ a-z0-9]به جز حروف و اعداد
\\ S. نمادهای کور: فضا، برگه، انتقال ردیف
\\ S.[^ ] علاوه بر نمادهای کروی
| (یکی | دیگر)در این مکان ممکن است یکی از گزینه های ذکر شده باشد، به عنوان مثال: (Vasya | پیتر | ماشا). اگر نمی خواهید آن را به نمونه ببرید، استفاده کنید (؟: ...)

از کلاس نماد برای تعیین فقط یک (به جای "+" به طور کامل "+") استفاده نکنید. یک نقطه را در کلاس نماد بنویسید - این هر شخصیتی است، سپس شخصیت های دیگر در کلاس به سادگی اضافی (و در کلاس منفی، تمام کاراکترها را رد می کنند).

کوانت کننده

Quantifier را می توان به عنوان یک مقدار و محدودیت خاص مشخص کرد. اگر تعداد مشخص شده تحت کوانتیزه قرار بگیرد، قطعه بیان در نظر گرفته شده است که با رشته شکسته همخوانی دارد. نحو:

{<количество> }

{<минимум> , <максимум> }

اگر شما نیاز به مشخص کردن حداقل حداقل لازم، اما حداکثر، ما به سادگی کاما را قرار داده و شماره دوم را بنویسید: "(5،)" ("حداقل 5"). برای اندازه گیری های اغلب مورد استفاده، تعیین های ویژه ای وجود دارد:

در عمل، چنین کاراکترها اغلب از براکت های فرفری استفاده می شود.

لنگر.

این شخصیت ها باید در همان ابتدا و در انتهای خط قرار گیرند.

طمع

علامت سوال نیز به عنوان یک minimizer کوانتومی ظاهر می شود:
.*?

$1"$ re1 \u003d" | \\ (. *) \\ | ixs "؛ $ re2 \u003d" | \\ (. *؟) \\ | ixs "؛ $ نتیجه \u003d preg_replace ($ RE1، $ به، $ st)؛ echo" the نسخه حریص: ".htmlspecialchars ($ نتیجه، null،" Windows-1251 ")."
"؛ $ نتیجه \u003d preg_replace ($ RE2، $ به، $ str)؛ echo" نسخه تنبل: ".htmlspecialchars ($ نتیجه، null،" windows-1251 ")."
"؛؟\u003e نتیجه مثال: نسخه حریص: متن چرب [ب] و در اینجا - حتی بیشتر چربی بازگشت نسخه تنبل: متن چرب [ب] و اینجا - حتی بیشتر برگشت

رشته الگو، همانطور که متوجه شدید، شروع می شود و به پایان می رسد با slashes. پس از دوم، پارامترها دنبال می شوند:

من.جستجوی وابسته به ثبت نام
m.

حالت چند خطی به طور پیش فرض، PCRE به دنبال یک قالب فقط در داخل همان خط، و شخصیت های "^" و "$" تنها با آغاز و پایان متن همزمان است. هنگامی که این پارامتر تنظیم شده است، "^" و "$" همزمان با شروع و پایان خطوط فردی است.

s.سمبل "." (نقطه) همزمان با انتقال خط (به طور پیش فرض - نه)
آ.اتصال به ابتدای متن
E.نماد "$" تنها با پایان متن است. اگر Paramert M نصب شود نادیده گرفته می شود.
توانتقال "حرص و طمع" برای هر مقدار سنجی (اگر پس از هزینه های کم هزینه "؟"، این کمیته کننده متوقف می شود "حرص و طمع").
e.رشته جایگزینی به عنوان کد پی اچ پی تفسیر می شود.

توابع برای کار با عبارات منظم

  • preg_grep
  • preg_match - یک بررسی منظم بیان را انجام می دهد. این ویژگی فقط به دنبال اولین تصادف است!
  • preg_match_all.
  • preg_quote - شخصیت های سپر در عبارات منظم. کسانی که. یک اسلش را به تمام نمادهای خدمات (به عنوان مثال، براکت، براکت مربع، و غیره) وارد می کند، به طوری که کسانی که به معنای واقعی کلمه درک شده اند. اگر شما هر گونه اطلاعات کاربر را دارید، و آن را با عبارات منظم بررسی کنید، بهتر است شخصیت های خدمات را در متغیر منتقل کنید
  • preg_replace
  • preg_replace_callback - جستجو را با بیان منظم و جایگزینی انجام می دهد
  • preg_split

preg_grep

تابع preg_grep. - آرایه ای از وقایع را که مطابق با الگو هستند، باز می گرداند

نحو

آرایه. preg_grep. (الگوی رشته، ورودی آرایه [، پرچم های int])

preg_grep () یک آرایه را شامل می شود که شامل عناصر یک آرایه ورودی ورودی است که مربوط به الگوی الگوی مشخص شده است.

پارامتر پرچم ها می تواند مقادیر زیر را انجام دهد:

preg_grep_invert.
اگر این پرچم تنظیم شده باشد، تابع preg_grep ()، عناصر آرایه ای را که با قالب الگوی مشخص شده مطابقت ندارند، باز می گرداند.
نتیجه حاصل از تابع preg_grep () از همان شاخص ها به عنوان مجموعه ای از داده های منبع استفاده می کند. اگر این رفتار مناسب نیست، Array_Values \u200b\u200b() را به آرایه بازگردانده شده توسط preg_grep () برای reindexing.
کد نمونه:

// تمام عناصر آرایه را باز می گرداند، // حاوی شماره های نقطه شناور $ fl_array \u003d preg_grep ("/ ^ (\\ d +)؟ \\ d + $ /"، $ array)؛

preg_match

تابع preg_match - یک بررسی منظم بیان را انجام می دهد

نحو

int preg_match (الگوی رشته، موضوع رشته [، Array Matches [، پرچم های int [، int offset]])) جستجو در موضوع متن مشخص شده با قالب الگو

در صورتی که پارامتر مسابقات اضافی مشخص شده باشد، با نتایج جستجو پر می شود. عنصر $ مسابقات شامل بخشی از خط مربوط به رویداد کل قالب، $ مسابقات - بخشی از رشته مربوط به اولین زیردریایی، و غیره.

پرچم ها می توانند مقادیر زیر را مصرف کنند:

preg_offset_capture

جستجو از سمت چپ به راست، از ابتدای خط انجام می شود. پارامتر اختیاری افست را می توان برای نشان دادن موقعیت شروع جایگزین برای جستجو استفاده کرد. یک نتیجه مشابه را می توان با جایگزینی موضوع بر روی Substr () ($ موضوع، $ offset) به دست آورد.

تابع preg_match () تعداد انطباق را پیدا می کند. این می تواند 0 باشد (بدون همزمان یافت می شود) و 1، از آنجا که preg_match () کار خود را پس از اولین تصادف پیدا می کند. اگر شما نیاز به پیدا کردن یا شمارش تمام همزمان، شما باید از تابع preg_match_all () استفاده کنید. تابع preg_match () False را به صورت نادرست باز می گرداند، در صورتی که هر خطایی در طول اعدام رخ داده باشد.

توصیه: از عملکرد pregg_match () استفاده نکنید اگر شما باید برای حضور یک Substring در یک خط داده شده را بررسی کنید. استفاده از این strs () یا strstr ()، زیرا آنها این کار را بسیار سریع تر انجام می دهند.

کد نمونه

کد نمونه

کد نمونه

نتیجه مثال:

نام دامنه: سایت

preg_match_all.

تابع preg_match_allall - یک جستجوی قالب جهانی را در رشته انجام می دهد

نحو

int preg_match_allall (الگوی رشته، موضوع رشته، مسابقات آرایه [، پرچم های Int [، int offset]])

به دنبال تمام همزمان با قالب الگوی در رشته موضوع و نتیجه در آرایه مسابقات به ترتیب تعیین شده توسط ترکیبی از پرچم پرچم.

پس از پیدا کردن اولین انطباق، جستجوهای بعدی از ابتدای خط انجام می شود، بلکه از پایان آخرین ورود پیدا شده است.

پارامتر پرچم های اضافی می تواند مقادیر زیر را ترکیب کند (لازم است بدانیم که با استفاده از preg_pattern_order به طور همزمان با preg_set_order بی معنی است):

preg_pattern_order.
اگر این پرچم نصب شده باشد، نتیجه به صورت زیر دستور داده می شود: عنصر $ matches شامل مجموعه ای از نوشته های کامل قالب است، عنصر $ مسابقات شامل مجموعه ای از ورود به اولین podmascus، و غیره است.

کد نمونه

]+>(.*)] +\u003e | U "،" مثال:
این یک امتحان است
"، $ out، preg_pattern_order)؛ echo $ out."، "$ out." \\ n "؛ echo $ out"، ". $ out"؛ \\ n "؛؟\u003e نتیجه مثال: مثال:,
این یک امتحان است
به عنوان مثال: این یک آزمون است

همانطور که می بینیم، $ OUT شامل مجموعه ای از نوشته های کامل قالب است، و عنصر $ OUT شامل مجموعه ای از زیر شاخه موجود در برچسب ها است.

preg_set_order
اگر این پرچم نصب شده باشد، نتیجه به صورت زیر دستور داده می شود: عنصر $ مسابقات شامل اولین مجموعه ای از وقایع است، عنصر $ مسابقات شامل مجموعه دوم از وقایع، و غیره.

کد نمونه

]+>(.*)] +\u003e | U "،" مثال:
این یک امتحان است
"، $ OUT، preg_set_order)؛ echo $ out."، ". $ out." \\ n "؛ echo $ out"، "$ out"؛ '\\ n "؛؟\u003e نتیجه مثال مثال مثال: مثال:، مثال:
این یک امتحان است
، این یک امتحان است

در این مورد، آرایه ای از $ مسابقات شامل اولین مجموعه ای از وقایع است، یعنی: عنصر $ Matches شامل اولین ورودی کل قالب است، عنصر $ مسابقات شامل اولین ورودی از اولین تخلیه، و غیره. به طور مشابه، مجموعه ای از مسابقات $ شامل مجموعه دوم از وقایع، و بنابراین برای هر شماره گیری یافت شده است.

preg_offset_capture
اگر این پرچم مشخص شده باشد، موقعیت آن در خط منبع برای هر کدام مشخص شده است. باید به یاد داشته باشید که این پرچم فرمت داده های بازگشت را تغییر می دهد: هر ورودی به عنوان یک آرایه باز می گردد، در عنصر صفر که زیرمجموعه یافت می شود، و در اولین افست.

در صورت استفاده از پرچم استفاده نمی شود، پیش فرض preg_pattern_order است.

جستجو از سمت چپ به راست، از ابتدای خط انجام می شود. پارامتر اختیاری افست را می توان برای نشان دادن موقعیت شروع جایگزین برای جستجو استفاده کرد. یک نتیجه مشابه را می توان با جایگزینی موضوع بر روی Substr () ($ موضوع، $ offset) به دست آورد.

تعدادی از نوشته های یافت شده از قالب (ممکن است صفر) (ممکن است صفر) یا نادرست باشد، اگر هر گونه خطایی در طول اعدام رخ داده باشد.

کد نمونه

کد نمونه

متن پررنگمرا کلیک کن."؛ preg_match_all (" / (<([\w]+)[^>]*>)(.*)(<\/\\2>) / "، $ HTML، $ مسابقات)؛ برای ($ I \u003d 0؛ $ I< count($matches); $i++) { echo "matched: " . $matches[$i] . "\n"; echo "part 1: " . $matches[$i] . "\n"; echo "part 2: " . $matches[$i] . "\n"; echo "part 3: " . $matches[$i] . "\n\n"; } ?> نتیجه مثال: هماهنگ: متن پررنگ قسمت 1: قسمت 2: متن جسورانه قسمت 3: تطبیق: مرا کلیک کن. قسمت 1: قسمت 2: روی من کلیک کنید قسمت 3:

preg_quote.

تابع preg_quote - سپر نمادها در عبارات منظم

نحو

رشته preg_quote (رشته str [، string delimiter])

ویژگی preg_quote () String Str را می گیرد و قبل از هر کاراکتر سرویس، متضاد را اضافه می کند. این مفید است اگر متغیرهای رشته در طراحی قالب دخیل باشند، ارزش آن در طول عملیات اسکریپت می تواند تغییر کند.

در صورتی که پارامتر تعریف اضافی مشخص شود، آن را نیز محافظت می شود. این مناسب برای محافظت از محدود کننده است که در توابع PCRE استفاده می شود. شایع ترین محدود کننده نماد "/" است.

در عبارات منظم، نمادهای زیر در نظر گرفته می شود :. \\\\ + *؟ [^] $ () () \u003d!< > | :

کد نمونه

کد نمونه

"$ word.""، $ textbody)؛ echo $ textbody؛؟\u003e نتیجه مثال: این کتاب است * بسیار * پیدا کردنش سخت است.

preg_replace

تابع preg_replace - جستجو و جایگزینی بیان منظم

نحو

مخلوط preg_replace (الگوی ترکیبی، جایگزینی مخلوط، موضوع مخلوط [، int limit])

جستجو در رشته موضوع مسابقات با قالب الگو و جایگزین آنها بر روی جایگزینی. در صورتی که پارامتر محدود مشخص شود، انتشار محدودیت ورودی الگو جایگزین خواهد شد. اگر حد محدود به 1 برابر با -1 کاهش یابد، تمام ورود قالب جایگزین خواهد شد.

جایگزینی ممکن است حاوی مراجع نوع \\\\ n یا (با شروع PHP 4.0.4) $ n باشد، و آخرین گزینه ترجیح داده شده است. هر مرجع این مرجع با یک زیرمجموعه مربوط به n "substratus که در براکت های دور قرار دارد جایگزین می شود. n می تواند مقادیر 0 تا 99 را داشته باشد، و مرجع \\\\ 0 (یا 0 دلار) مربوط به ورود کل قالب است. Podmas ماسک ها از سمت چپ به راست شماره گیری می شوند، از یک شروع می شود.

هنگام استفاده از جایگزینی توسط قالب با استفاده از مراجع به ارسال ها، هنگامی که شماره به طور مستقیم برای ماسک دنبال می شود، وضعیت ممکن است رخ دهد. در این مورد، نشانه ای از فرم \\\\ n منجر به خطا می شود: اشاره به اولین زیردریایی، به دنبال آن شماره 1، به عنوان \\\\ 11 ثبت می شود، که به عنوان یک اشاره به زیردریایی یازدهم تفسیر می شود. این سوء تفاهم را می توان حذف کرد اگر از طراحی \\ $ 1 (1) 1 استفاده می کنید، نشان دهنده یک مرجع جدا شده به اولین زیردریایی است، و شماره 1 آن را دنبال می کند.

کد نمونه

نتیجه این مثال خواهد بود:

اگر، در طول اجرای تابع، همزمان با قالب شناسایی شد، مقدار subcect اصلاح شده بازگردانده شد، در غیر این صورت موضوع متن منبع بازگردانده می شود.

سه پارامتر اول تابع preg_replace () ممکن است آرایه های یک بعدی باشد. در صورتی که آرایه از کلیدهای استفاده می کند هنگام پردازش آرایه، آنها به ترتیب که در آن در آرایه قرار می گیرند، گرفته می شود. مشخص کردن کلیدها در یک آرایه برای الگوی و جایگزینی مورد نیاز نیست. اگر هنوز تصمیم گرفتید از شاخص ها استفاده کنید، برای مطابقت با قالب ها و ردیف های مربوط به جایگزینی، از عملکرد ksort () برای هر یک از آرایه ها استفاده کنید.

خرس سیاه آهسته بیش از سگ تنبل پرید.

با استفاده از ksort ()، نتیجه دلخواه را دریافت می کنیم:

خرس سیاه آهسته بیش از سگ تنبل پرید.

اگر پارامتر موضوع یک آرایه باشد، جستجو و جایگزینی در قالب برای هر یک از موارد آن ساخته شده است. نتیجه بازگشت نیز یک آرایه است.

در صورتی که پارامترهای الگوی و جایگزینی آرایه ها، preg_replace () به طور متناوب عصاره های هر دو آرایه ها با استفاده از جفت عناصر و استفاده از آنها برای عملیات جستجو و جایگزینی است. اگر آرایه جایگزینی شامل عناصر بیشتری از الگوی باشد، خطوط خالی به جای موارد از دست رفته برای جایگزینی گرفته می شود. در صورتی که الگوی یک آرایه است، و جایگزینی یک رشته است، برای هر عنصر آرایه الگوی، جستجو و جایگزینی بر روی الگوی انجام می شود (تمام عناصر آرایه به طور متناوب، در حالی که خط جایگزینی باقی می ماند ثابت خواهد شد ) گزینه زمانی که الگوی یک رشته است، و جایگزینی یک آرایه است، منطقی نیست.

اصلاح کننده / E رفتار تابع preg_replace () را تغییر می دهد () به طوری که پارامتر جایگزینی پس از انجام جایگزینی های لازم به عنوان یک کد پی اچ پی تفسیر می شود و تنها پس از آن برای جایگزینی استفاده می شود. با استفاده از این اصلاح کننده، مراقب باشید: پارامتر جایگزینی باید حاوی یک کد پی اچ پی صحیح باشد، در غیر این صورت در یک رشته حاوی پارامترهای عملکرد prex_replace ()، خطای نحو رخ می دهد.

کد نمونه: جایگزینی برای چند قالب

این مثال را به وجود خواهد آورد:

$ startdate \u003d "5/27/1999"؛

کد نمونه: با استفاده از اصلاح کننده / e

] *\u003e) / e "،"، "\\\\ 1" .strtoupper ("\\\\ 2"). "\\\\ 3"، $ html_body)؛؟\u003e

کد نمونه: تبدیل تمام تگ های HTML به ثبت نام بالا

]*?>.*?"SI"، // جاوا اسکریپت را قطع می کند ""<[\/\!]*?[^<>] *؟\u003e "si"، // برش تگ های HTML "" ([\\ r \\ n]) [\\ s] + ""، // شخصیت های فضایی را قطع می کند "" & (quot | # 34)؛ "من" ، // جایگزین اشخاصهای HTML "" & (AMP | # 38)؛ "من"، "" و LT \u200b\u200b| # 60)؛ "من"، "" "" & (GT | # 62)؛ "من"، ""، "" nbsp | # 160)؛ "من"، "" و (IEXCL | # 161)؛ "من"، "" & (Cent | # 162)؛ "من"، "" و (پوند | # 163)؛ "من "،" "& (کپی | # 169)؛" من "،" "(\\ d +)؛" e ")؛ // تفسیر به عنوان یک کد پی اچ پی $ جایگزین \u003d آرایه (""، "،"، "\\\\ 1"، "\\"، "و"، "<", ">""، "،"، Chr (161)، CHR (162)، Chr (163)، Chr (169)، Chr (169)، "Chr (\\\\ 1)")؛ $ text \u003d preg_replace ($ search، $ replork، $ سند)؛ ؟\u003e

preg_replace_callback

تابع preg_replace_callback - جستجو برای بیان منظم و جایگزینی با استفاده از تابع فراخوانی

نحو

مخلوط preg_replace_callback (الگوی ترکیبی، فراخوانی فراخوانی، موضوع مخلوط [، int limit])

رفتار این تابع تا حد زیادی توسط preg_replace () به جز این که به جای پارامتر جایگزینی، به یاد می آید، باید یک تابع فراخوانی را مشخص کنید که مجموعه ای از نوشته های یافت شده به عنوان یک پارامتر ورودی منتقل می شود. نتیجه مورد انتظار یک رشته است که جایگزین خواهد شد.

کد نمونه

\\ s * \\ w | "، create_function (// با استفاده از نقل قول های تک در این مورد، اساسا، // Alternative - صفحه نمایش همه کاراکترها" $ $ matches "،" بازگشت strtolower ($ matches)؛ ")، $ خط)؛ echo $ line؛) fclose ($ fp)؛؟\u003e

preg_split

تابع preg_split - رشته را با بیان منظم قطع می کند

نحو

آرایه. preg_split (الگوی رشته، موضوع رشته [، Int Limit [، پرچم های int]])

یک آرایه را که شامل زیر رشته رشته موضوع مشخص شده است، باز می گرداند، که توسط مرزها مربوط به الگوی الگو تقسیم می شود.

اگر پارامتر محدود مشخص شود، عملکرد بیش از حد محدود نمی شود. مقدار محدودیت ویژه، برابر با -1، به معنای کمبود محدودیت است، برای مشخص کردن یک پارامتر دیگر پرچم اختیاری بسیار مفید است.

پرچم ها می توانند ترکیبی دلخواه از پرچم های زیر باشند (اتصال با اپراتور "|"):

preg_split_no_empty
در صورتی که این پرچم مشخص شده باشد، تابع preg_split () تنها زیر پوسته غیر خالی را باز می کند.

preg_split_delim_capture
در صورتی که این پرچم مشخص شده باشد، بیان محصور شده در پرانتز در الگوی جداسازی نیز از ردیف مشخص شده حذف می شود و به عملکرد باز می گردد. این پرچم به PHP 4.0.5 اضافه شد.

preg_split_offset_capture.
اگر این پرچم مشخص شده باشد، موقعیت آن در خط اصلی برای هر substring مشخص می شود. باید به یاد داشته باشید که این پرچم فرمت داده های بازگشت را تغییر می دهد: هر ورودی به عنوان یک آرایه باز می گردد، در عنصر صفر که زیرمجموعه یافت می شود، و در اولین افست.

نمونه هایی از کد

در صورتی که پس از باز شدن براکت دور به دنبال آن است ?: "، ضبط رشته رخ نمی دهد، و دستگاه های فعلی شماره گذاری نشده است. به عنوان مثال، اگر" Queen White Queen "ردیف ((؟:: قرمز | سفید) قالب (پادشاه | ملکه))، خواهد شد توسط "ملکه سفید" و "ملکه" دستگیر شود، آنها به ترتیب 1 و 2 به ترتیب 1 و 2 خواهند بود:

$ R \u003d "/ ((؟:: RED | سفید) (پادشاه | ملکه)) /"؛ 0 \u003d "پادشاه سفید"؛ 1 \u003d "پادشاه سفید"؛ 2 \u003d "پادشاه"؛

بیشتر در مورد عبارات منظم:


عبارات منظم بررسی خدمات:


ادامه مطلب: کتابخانه حلقه در پی اچ پی
.

عبارات منظم یک ابزار بسیار مفید برای توسعه دهندگان هستند. با کمک آنها، می توانید متن، کلمات یا هر شخصیت دیگر را شناسایی، شناسایی یا جایگزین کنید. در مقاله امروز، 15 عبارات به طور منظم سودمند جمع آوری می شوند که از هر توسعه دهنده وب استفاده می کنند.

مقدمه ای بر عبارات منظم

به نظر می رسد بسیاری از توسعه دهندگان تازه کار به طور منظم برای درک و استفاده بسیار پیچیده هستند. در واقع، همه چیز خیلی دشوار نیست، زیرا ممکن است به نظر برسد. قبل از اینکه ما به طور مستقیم به عبارات منظم ادامه دهیم، با کد مفید و متنوع آنها، بیایید نگاهی به پایه بگذاریم:

نحو از عبارات منظم

عبارت منظم به معنای
فو ردیف "foo"
^ foo رشته شروع می شود با "foo"
foo $. رشته به پایان می رسد در "foo"
^ foo $. "foo" تنها یک بار در خط رخ می دهد
a، b یا c
هر شخصیتی در حروف کوچک
[^ a-z] هر شخصیتی که در حروف بزرگ نیست
(GIF | jpg) به معنی هر دو "GIF" و "JPEG"
+ یک یا چند نماد ثبت نام پایین تر
هر رقمی، نقطه یا منهای علامت
^{1,}$ هر کلمه، حداقل یک حرف، شماره یا _
()() wY، WZ، XY، یا XZ
(^ a-za-z0-9) هر نماد (شماره و نه حرف)
({3}|{4}) یعنی سه حرف یا 4 عدد

توابع پی اچ پی برای عبارات منظم

تابع شرح
preg_match () تابع preg_match () به دنبال یک رشته در امتداد قالب مشخص شده است، اگر رشته هر دو نادرست باشد، در موارد دیگر، درست می شود
preg_match_all () تابع preg_match_all () تمام ورودی رشته مشخص شده توسط الگو را پیدا می کند
preg_replace () تابع preg_replace () با همان اصل به عنوان ereg_replace () معتبر است، به جز اینکه عبارات منظم را می توان از هر دو برای مشخص کردن قالب جستجو استفاده کرد و برای یک رشته برای جایگزینی با مقدار یافت می شود.
preg_split () تابع preg_split () عمل جراحی و همچنین تقسیم ()، به جز اینکه بیان منظم می تواند به عنوان یک پارامتر برای قالب جستجو استفاده شود.
preg_grep () تابع preg_grep () به دنبال تمام عناصر آرایه ورودی است، بازگشت تمام عناصر مربوط به الگوی بیان منظم.
preg_quote () کاراکترهای منظم عبارات

چک کردن نام دامنه

بررسی کنید که رشته نام دامنه مناسب است

$ url \u003d "http://komunitasweb.com/"؛ اگر (preg_match ("/ ^ http | httpps | ftp)): // (* (؟ :: *) +) :(): /؟ /؟ / من"، $ url)) (echo "URL شما خوب است . "؛) دیگر (echo" URL اشتباه "؛)

برجسته کردن کلمه در متن

این یک عبارت بسیار مفید بسیار مفید است، با آن شما می توانید کلمه مناسب را پیدا کنید و آن را برجسته کنید. به خصوص برای نمایش نتایج جستجو مفید است.

$ text \u003d "جمله نمونه از KomunitasWeb، Regex در برنامه نویسی وب محبوب شده است. در حال حاضر ما Regex را یاد می گیریم. بر اساس ویکی پدیا، عبارات منظم (به اختصار به عنوان regex یا regexp، با فرم های Pralxes، Regexps یا Regexen فرم های PRAL، به صورت رسمی نوشته شده است زبان که می تواند توسط یک پردازنده منظم بیان تفسیر شود "؛ $ text \u003d preg_replace ("/ b (regex) b / i"، " 1"، $ متن)؛ echo $ text؛

نتایج جستجو نور پس زمینه در وبلاگ وردپرس

همانطور که قبلا در مثال قبلی ذکر شد، این مثال از کد مناسب است که در صدور نتایج جستجو استفاده شود و یک راه عالی برای پیاده سازی این عملکرد در وبلاگ وردپرس وجود دارد.

فایل search.php خود را باز کنید و تابع the_title () را پیدا کنید. آن را با کد زیر جایگزین کنید:

echo $ title؛

در حال حاضر، بالای این خط، این کد را اضافه کنید:

\0"، $ عنوان)؛؟\u003e

فایل search.php را ذخیره کنید و Style.css را باز کنید. رشته بعدی را اضافه کنید:

strong.Search-excerpt (زمینه: زرد؛)

گرفتن تمام تصاویر از سند HTML

اگر تا به حال نیاز به دریافت تمام تصاویر از یک صفحه وب، این کد باید به راحتی قادر به ایجاد لودر تصویر با استفاده از قابلیت های Curl

$ تصاویر \u003d آرایه ()؛ preg_match_all ("/ img | src) \u003d (" | \\ ") [^" \\ "\u003e] + / i"، $ داده ها، $ media)؛ UNSET (داده های $)؛ $ data \u003d preg_replace ("/ img | src) (" | \\ "| \u003d" | \u003d \\ ") (. *) / من"، "$ 3"، $ media)؛ foreach ($ داده ها به عنوان $ URL) ($ info \u003d pathinfo ($ url)؛ اگر (isset ($ info [extension "])) (اگر ($ info [" extension "] \u003d\u003d" jpg ") || ($ info ["extension"] \u003d\u003d "jpeg") || ($ info [extension »] \u003d\u003d" gif ") || ($ info [" extension "] \u003d\u003d" png ")) array_push ($ تصاویر، $ URL)؛))

حذف کلمات تکراری (حساس به ثبت نام نیست)

در طول چاپ، کلمات اغلب تکرار می شوند؟ این به این بیان منظم کمک خواهد کرد.

$ text \u003d preg_replace ("/ s (w + s) 1 / i"، "$ 1"، $ text)؛

حذف تکرارهای تکراری

همان، فقط برای نشانه گذاری. با کاما دوگانه شلیک کنید

$ text \u003d preg_replace ("/.+/ I"، "."، $ text)؛

جستجوی تگ های XML / HTML

این ویژگی ساده دو استدلال را می گیرد. اولین تگ است که شما باید پیدا کنید، و دوم یک متغیر حاوی XML یا HTML است. من تکرار می کنم، این ویژگی بسیار راحت است که با Curl استفاده شود.

تابع get_tag ($ tag، $ xml) ($ tag \u003d preg_quote ($ tag)؛ preg_match_all ("(<".$tag."[^>]*>(.*?). ")"، $ XML، $ مسابقات، preg_pattern_order)؛ بازگشت $ مسابقات؛ )

جستجوی تگ های XTML / XML با یک مقدار مشخصه خاص

این ویژگی بسیار شبیه به یک قبلی است، به جز اینکه شما می توانید از ویژگی دلخواه بپرسید. به عنوان مثال، شما به راحتی می توانید پیدا کنید

.

تابع get_tag ($ attr، $ value، $ xml، $ tag \u003d null) (iS_Null ($ tag)) $ tag \u003d "\\ w +"؛ else $ tag \u003d preg_quote ($ tag)؛ $ attr \u003d preg_quote ( $ atch) $ value \u003d preg_quote ($ ارزش)؛ $ tag_regex \u003d "/<(".$tag.")[^>] * $ attr \\ s * \u003d \\ s * "." (["\\"]) $ value \\\\ 2 [^\u003e] *\u003e (. *؟)<\/\\1>/ "preg_match_all ($ tag_regex، $ xml، $ tages، preg_pattern_order)؛ بازگشت $ مسابقات؛)

جستجو برای مقادیر گل هگزادسیمال

یکی دیگر از ابزارهای مفید برای توسعه دهنده وب! این اجازه می دهد تا شما را به پیدا کردن / بررسی مقدار رنگ هگزادسیمال.

$ string \u003d "# 555555"؛ اگر (preg_match ("/ ^ # (؟ :(؟ :( 3)) (1،2)) $ / i"، $ string)) (echo "مثال 6 موفقیت آمیز"؛)

مقالات جستجو

این قطعه کد متن را پیدا می کند و متن را در داخل برچسب ها نمایش می دهد. ، در صفحه HTML.

$ fp \u003d fopen ("http://www.catswhocode.com/blog"، "R")؛ در حالی که (! Feof ($ fp)) ($ صفحه \u003d FGETS ($ fp، 4096)؛) $ totre \u003d reegi (" (.*)"، $ صفحه، $ regs)؛ echo $ regs؛ fclose ($ fp)؛

apache logs تجزیه و تحلیل

اکثر سایت ها در وب سرور آپاچی شناخته شده اند. اگر سایت شما در میان آنها باشد، چرا از پی اچ پی و عبارات منظم استفاده نکنید تا سیاهههای مربوط به اپیچا را رد کنید؟

// logs: آپاچی وب سرور // بازدید های موفق به فایل های HTML تنها. مفید برای شمارش تعداد نمایش صفحه. "^ ((؟ # مشتری IP یا نام دامنه) S +) S + ((؟ # تأیید اعتبار اساسی) S + S + S +) S + [((؟ # تاریخ و زمان) [^]] +) + "(؟: دریافت | ارسال | سر) (((؟ #file) / [^؟"] +؟ "HTML؟) ؟؟ ((؟ # پارامترها) [^؟"] +)؟ http / + "S + (؟ # کد وضعیت) 200s + ((؟ # bytes منتقل شده) [- 0-9] +) S +" ((؟ # ارجاع) [^ "] *)" S + "(( ؟ # عامل کاربر) [^ "] *)" $ "// logs: apache web server // 404 خطاهای تنها" ^ ((؟ # مشتری IP یا نام دامنه) S +) S + ((؟ # تأیید اعتبار اساسی) s + s + s +) s + [((؟ # تاریخ و زمان) [^]] +)] S + "(؟: دریافت | ارسال | سر) ((؟ #file) [^؟»] + ) ؟؟ ((؟ # پارامترها) [^؟ "] +)؟ http / + "s + (؟ # کد وضعیت) 404s + ((؟ # bytes منتقل شده) [- 0-9] +) S +" ((؟ # ارجاع) [^ "] *)" S + "( (؟ # عامل کاربر) [^ "] *)" $ "

جایگزینی نقل قول های دوگانه نقل قول های "هوشمند"

اگر شما یک amateur تایپوگرافی هستید، از این عبارت منظم لذت خواهید برد که جایگزین های دوگانه معمولی را در نقل قول های هوشمند جایگزین کند. یک عبارت منظم مشابه در وردپرس در محتوای صفحه استفاده می شود.

preg_replace ("b" b ([^ "x84x93x94rn] +) b" b "،"؟ 1؟ "، $ text)؛

چک رمز عبور جامع

این عبارت منظم اطمینان حاصل خواهد کرد که حداقل شش کاراکتر، ارقام، خطاها و حروف زیر را به میدان متن معرفی می کنند.

فیلد متن باید حداقل یک نماد ثبت نام بالا، یک ثبت نام پایین تر و یک رقم داشته باشد.

"a (؟ \u003d [-_ a-za-za-z0-9]؟) (؟ \u003d [-_ a-za-za-z0-9] *؟) (؟ \u003d [-_ a-za-z0-9] *؟) [-_a-za-z0-9] (6،) z "

وردپرس: با استفاده از یک عبارت منظم برای دریافت تصاویر از رکورد

از آنجا که بسیاری از شما کاربران وردپرس هستند، ممکن است برای کد مفید باشد که به شما امکان می دهد تمام تصاویر را از متن مقاله بدست آورید و آنها را بیرون بیاورید.

به منظور استفاده از این کد، به سادگی آن را به هر پرونده ای از موضوع خود وارد کنید.

post_content؛ $ szsearchpattern \u003d "~ ] * /\u003e ~ "؛ // run preg_match_all برای گرفتن als iPics و صرفه جویی در نتایج در $ szsearchpattern، $ szpostContent، $ apics)؛ // بررسی کنید تا ببینید آیا حداقل 1 تصویر $ inumberoffics \u003d تعداد ($ apics ) اگر ($ inumberofpics\u003e 0) (/ /// ower شما انجام هر کاری که شما باید انجام دهید با تصاویر فقط نمایش داده می شود ($ I \u003d 0؛ $ I< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>

نسل شکلک های اتوماتیک

یکی دیگر از ویژگی های مورد استفاده در وردپرس - به شما اجازه می دهد تا به طور خودکار شخصیت های شکلک را بر روی تصویر لبخند جایگزین کنید.

$ texte \u003d "یک متن با یک لبخند :-)"؛ echo str_replace (":-)"، " "، $ texte)؛