Regex yn PHP

R

Beth yw Mynegiant Rheolaidd?

Dechreuir yr ymadrodd rheolaidd yn y bôn o fathemateg sy'n diffinio ystod o gymeriadau at ryw bwrpas. Mae gwahanol ieithoedd yn cael cyfeiriadau o'r cysyniad mathemategol hwn a'i gymhwyso ar gyfer chwilio patrymau a dilysu data. Yn yr erthygl hon, byddwch chi'n dysgu regex yn PHP.

Mae yna lawer o achosion defnydd o regex mewn PHP fel chwilio, dilysu, ac ati. Yn yr erthygl hon, byddwch chi'n dysgu am ymadroddion rheolaidd mewn patrymau chwilio. Unwaith y byddwch chi'n gallu deall y regex, gallwch ei ddefnyddio yn unrhyw le yn PHP.

Gellir defnyddio mynegiad rheolaidd i chwilio testun o dannau neu i ddisodli nodau neu dannau penodol.

Gall mynegiant rheolaidd fod yn gymeriad sengl neu'n gyfuniad o rai patrymau cymhleth.

Cystrawen mynegiant rheolaidd yn PHP

Gall y delimiter fod yn unrhyw gymeriad nad yw'n llythyren, rhif, sblash, na gofod. Y delimiter mwyaf cyffredin yw'r blaen-slaes (/), ond pan fydd eich patrwm yn cynnwys blaen-slaes mae'n gyfleus dewis delimiters eraill fel # neu ~.

Yn gyffredinol, mae mynegiant rheolaidd yn PHP yn cynnwys of tair rhan.

  1. Delimiter - Mae'n nodi sy'n dweud dechrau neu ddiwedd y llinyn yn y patrwm. Ni all delimydd fod yn ôl-sblash, rhif, llythyren na gofod. Fodd bynnag, gellir defnyddio slaes ymlaen fel delimydd. Os yw'r patrymau rydych chi'n chwilio amdanynt yn cynnwys anfon gwasgfeydd ymlaen, gallwch chi newid y delimydd i gogwyddo ~ neu hash #.
  2. patrwm - Roedd yn nodi patrwm neu ddilyniant y cymeriadau i'w chwilio.
  3. Newidwyr (dewisol) - Gallwch wneud paru achosion patrwm yn ansensitif neu'n sensitif.

enghraifft

$exp = "/php.org/i";

RegextFunctions yn PHP

Mae PHP yn darparu swyddogaethau adeiledig ar gyfer ymadroddion rheolaidd. Y swyddogaethau regex mwyaf cyffredin yn PHP yw:

  • Preg_replace () - Mae'n cyfrif y nifer o weithiau mae'r patrwm yn digwydd yn y llinyn ac yn dychwelyd y cyfrif.
  • Preg_match () - yn dychwelyd 0 rhag ofn na fydd y patrwm i'w gael yn y llinyn. 1 rhag ofn ei ddarganfod.
  • Preg_match_all () - Mae'r swyddogaeth hon yn disodli'r llinyn gyda llinyn arall lle mae'r patrwm yn cyfateb. Fe gewch chi syniad mwy eglur yn yr adran nesaf os ydych chi'n ei chael hi'n anodd ei ddeall.

swyddogaeth preg_match yn PHP

Mae swyddogaeth Preg_match yn dychwelyd y canlyniad deuaidd. Mae hynny naill ai'n 0 neu'n 1. Os yw'r llinyn yn cynnwys y patrwm rydych chi'n ei nodi yn nadl gyntaf y swyddogaeth preg_match, bydd yn dychwelyd 1. 0 rhag ofn na fydd yn cael ei ddarganfod.

Edrychwch ar yr enghraifft ganlynol, lle rydyn ni'n chwilio'r llinyn am gymeriadau PHP.

<?php
$str = "Visit php.org";
$pattern = "/php/i";
echo preg_match($pattern, $str); // Outputs 1
?>

swyddogaeth preg_match_all yn PHP

Nid yw'r swyddogaeth hon yn dweud a yw'r patrwm yn bodoli yn y llinyn ai peidio. Mae'n dychwelyd cyfrif y nifer o weithiau y mae patrwm yn ymddangos yn y llinyn. Edrychwch ar yr enghraifft ganlynol lle rydyn ni wedi cynnal chwiliad achos-ansensitif o batrymau yn y llinyn a roddir.

enghraifft

<?php
$str = "It is raining heavily. Cars are slipping outside. ";
$pattern = "/ing/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>

/i yn yr enghraifft uchod nodwch y gall y llinyn fod naill ai mewn llythrennau bach neu mewn llythrennau bach.

swyddogaeth preg_replace yn PHP

preg_replace swyddogaeth yn dychwelyd llinyn newydd trwy ddisodli'r patrwm a geir yn y llinyn gyda llinyn arall o gymeriadau. Mae'r swyddogaeth hon yn derbyn tri pharamedr. Y paramedr cyntaf yw'r patrwm i chwilio yn y llinyn yn yr ail baramedr. Yn olaf, y trydydd paramedr yw'r llinyn i'w roi yn lle'r patrwm a geir yn y llinyn.

Edrychwch ar yr enghraifft ganlynol, lle rydyn ni'n disodli'r gair gwefan gyda PHP.org

enghraifft

<?php
$str = "Visit Website!";
$pattern = "/Website/i";
echo preg_replace($pattern, "php.org", $str); // Outputs "Visit php.org!"
?>

Addaswyr Mynegiant Rheolaidd

Gallwch addasu ymddygiad chwilio'r regex yn PHP trwy ddiffinio'r newidynnau addasydd canlynol.

  1. I - Fe'i defnyddir i berfformio chwilio achos-ansensitif.
  2. U - I chwilio am batrymau utf-8 yn gywir.
  3. M - Yn ychwanegu aml-chwilio yn y regex PHP. Mae yna rai patrymau sy'n chwilio ar ddechrau neu ar ddiwedd pob llinell. Felly, mae'r patrymau hyn yn edrych ar ddechrau a diwedd pob llinell o'r llinyn.

Nodwch yr ystod yn PHP regex

Deall y tri chysyniad canlynol. Bydd yn eich helpu chi i roi'r ystod mewn patrymau wrth chwilio testun neu ei ddisodli.

  1. [abc] - Roedd y cromfachau sgwâr yn nodi eu bod yn dod o hyd i unrhyw un cymeriad o'r cymeriadau hyn yn y llinyn.
  2. [^ 0-9] - Chwiliwch am y cymeriadau nad ydyn nhw yn yr ystod o fewn y cromfachau.
  3. [0-9] - Dewch o hyd i unrhyw un cymeriad rhwng 0 a 9. Mae 0 a 9 yn gynhwysol yn yr achos hwn.

Gallwch ddysgu mwy am swyddogaethau Regex yn PHP yma

Ychwanegu sylw

Rhwydwaith Tiwtoriaid

Dysgwch PHP o A i Z