REGULAR EXPRESSION FUNCTION

19
REGULAR EXPRESSION FUNCTION

description

REGULAR EXPRESSION FUNCTION. REGULAR EXPRESSION FUNCTION. ในภาษา PHP ได้เตรียมฟังก์ชันเพื่อเพิ่มความสามารถในการค้นหาตัวอักษรหรือกลุ่มคำในข้อความ โดยสามารถที่จะกำหนดเงื่อนไข(ตัวเลือก)ในการค้นหาได้ ทั้งนี้ต้องมีความเข้าใจในรูปแบบ และสัญลักษณ์ที่ใช้ในการค้นหา. - PowerPoint PPT Presentation

Transcript of REGULAR EXPRESSION FUNCTION

Page 1: REGULAR  EXPRESSION  FUNCTION

REGULAR EXPRESSION FUNCTION

Page 2: REGULAR  EXPRESSION  FUNCTION

REGULAR EXPRESSION FUNCTION

ในภาษา PHP ได้เตรี ยมฟั�งก์�ชั�นเพื่��อเพื่��มความสามารีถในก์ารีคนหาต�วอ�ก์ษรีหรี�อก์ลุ่"#มค$าในข้อความ โด้ยสามารีถที่ �จะก์$าหนด้เง��อนไข้(ต�วเลุ่�อก์)ในก์ารีคนหาได้ ที่�*งน *ตองม ความเข้าใจในรี+ปแบบ แลุ่ะส�ญลุ่�ก์ษณ์�ที่ �ใชัในก์ารีคนหา

Page 3: REGULAR  EXPRESSION  FUNCTION

สั�ญลั�กษณ์�ที่�ใช้�ก��หนดตั�วเลั�อกส�ญลุ่�ก์ษณ์�ที่ �ใชัในก์ารีก์$าหนด้ต�วเลุ่�อก์ในก์ารี

คนหา ข้อง Regular Expression . แที่นต�วอ�ก์ษรีใด้ก์1ได้

[…] ใชัครีอบก์ลุ่"#มต�วอ�ก์ษรีหรี�อก์ลุ่"#มข้องค$าที่ �ตองก์ารีใหม ใน ข้อความ

[^…] ใชัครีอบก์ลุ่"#มข้องต�วอ�ก์ษรีหรี�อก์ลุ่"#มข้องค$าที่ �ไม#ตองก์ารีให ม ในข้อความ

^ ใชัก์$าหนด้ต$าแหน#งเรี��มตนข้องข้อความ$ ใชัก์$าหนด้ต$าแหน#งที่ายส"ด้ข้องข้อความ\< ใชัก์$าหนด้ต$าแหน#งเรี��มตนข้องค$า

Page 4: REGULAR  EXPRESSION  FUNCTION

สั�ญลั�กษณ์�ที่�ใช้�ก��หนดตั�วเลั�อก(ตั�อ)

|> ใชัก์$าหนด้ต$าแหน#งที่ายส"ด้ข้องค$า| ใชัเลุ่�อก์ต�วเลุ่�อก์ต�วใด้ต�วหน2�งใน(…)(…) ใชัครีอบก์ลุ่"#มข้องต�วอ�ก์ษรีหรี�อก์ลุ่"#ม

ข้องค$าที่ �ตองก์ารีใหม ในข้อความ\metacharecter เม��อเป3นต�วเลุ่�อก์ เชั#น

. ? + { } | ( )

Page 5: REGULAR  EXPRESSION  FUNCTION

สั�ญลั�กษณ์�ที่�ใช้�แที่นตั�วอ�กษรหร�อคำ��

?จ$านวนที่ �ม ได้ไม#เก์�นหน2�งต�วแลุ่ะถาไม#ม ก์1ได้*จ$านวนที่ �ม เที่#าไรีก์1ได้แลุ่ะถาไม#ม ก์1ได้+ จ$านวนที่ �ม เที่#าไรีก์1ได้แต#อย#างนอยตองม

หน2�งต�ว{n} จ$านวนที่ �ม ได้อย#างนอยที่ �ส"ด้ค�อ n ต�ว{n,} จ$านวนที่ �ม ได้อย#างนอยที่ �ส"ด้ค�อ n หรี�อมาก์ก์ว#า n ต�ว

{,m} จ$านวนที่ �ม ได้ส+งส"ด้ค�อ m ต�ว{n,m} จ$านวนที่ �ม ได้อย#างนอยส"ด้ค�อ n แต#ตองไม#เก์�น m ต�ว

Page 6: REGULAR  EXPRESSION  FUNCTION

ตั�วอย่��ง

“somsak” เป3นก์ารีคนหาค$าว#า somsak ในข้อความ“^somsak” เป3นก์ารีคนหาข้อความที่ �ข้2*นตนด้วย somsak“sulpin$” เป3นก์ารีคนหาข้อความที่ �ลุ่งที่ายด้วย somsak“[joe]” เป3นก์ารีคนหาต�วอ�ก์ษรี j หรี�อ o หรี�อ e ในข้อความ“^[joe]” เป3นก์ารีคนหาข้อความที่ �ข้2*นตนด้วยต�วอ�ก์ษรี j หรี�อ o หรี�อ e“[^joe]” เป3นก์ารีคนหาข้อความที่ �ไม#ม ต�วอ�ก์ษรี j หรี�อ o หรี�อ e“[joe]$” เป3นก์ารีคนหาข้อความที่ �ลุ่งที่ายด้วยต�วอ�ก์ษรี j หรี�อ o หรี�อ e

Page 7: REGULAR  EXPRESSION  FUNCTION

“\<somsak” เป3นก์ารีคนหาข้อความที่ �ข้2*นตนด้วย somsak“\>somsak” เป3นก์ารีคนหาค$าในข้อความที่ �ลุ่งที่ายด้วย

somsak“(joe)” เป3นก์ารีคนหาค$าว#า joe ในข้อความ“^(jor)” เป3นก์ารีคนหาค$าที่ �ข้2*นตนด้วย joe“[^(joe)]” เป3นก์ารีคนหาข้อความที่ �ไม#ม ค$าว#า joe“(joe)$” เป3นก์ารีคนหาข้อความที่ �ลุ่งที่ายด้วยค$าว#า joe“(somsak|joe)” เป3นก์ารีคนหาค$าว#า somsak หรี�อ joe

ในข้อความ“^(somsak|joe)” เป3นก์ารีคนหาข้อความที่ �ข้2*นตนด้วย

somsak หรี�อ joe“(somsak|joe)$” เป3นก์ารีคนหาข้อความที่ �ลุ่งที่ายด้วย

somsak หรี�อ joe“(\.|\?|\+|\\)” เป3นก์ารีคนหาข้อความที่ �ม ต�วอ�ก์ษรี . ? + \

Page 8: REGULAR  EXPRESSION  FUNCTION

“(\.dot|\what|\+plus)” เป3นก์ารีคนหาข้อความที่ �ม ค$าว#า .dot หรี�อ ?what หรี�อ +plus

“[A-Z]”เป3นก์ารีคนหาต�วอ�ก์ษรี A หรี�อ B หรี�อ C ไปจนถ2ง Z ในข้อความ“[0-9]” เป3นก์ารีคนหาต�วอ�ก์ษรี 0 หรี�อ 1 หรี�อ 2 ไปจนถ2ง 9 ในข้อความ“[A-Z][9-0]” เป3นก์ารีคนหาค$าที่ �ม ต�วอ�ก์ษรี A หรี�อ B หรี�อ C ไปจนถ2ง Z เป3นต�วแรีก์

แลุ่ะต�วที่ �สองตองเป3นต�วอ�ก์ษรี 0 หรี�อ 1 หรี�อ 2 ไปจนถ2ง 9 ในข้อความ“[A-Z][^0-9]” เป3นก์ารีคนหาค$าที่ �ม ต�วอ�ก์ษรี A หรี�อ B หรี�อ C ไปจนถ2ง Z เป3น

ต�วแรีก์ แลุ่ะต�วที่ �สองตองเป3นไม#ใชัต�วอ�ก์ษรี 0 หรี�อ 1 หรี�อ 2 ไปจนถ2ง 9

ในข้อความ“([0-9]+(\.[0-9]+){3})” เป3นก์ารีคนหาเลุ่ข้ IP (เชั#น 192.168.0.1) ใน

ข้อความ“([.]{1,2}([\][0-9a-zA-Z]*)*)” เป3นก์ารีคนหา Path (เชั#น ..\home\joe) ใน

ข้อความ“[+-]?[0-9]+(\.[0-9]*)?” เป3นก์ารีคนหาเลุ่ข้ที่ศน�ยม (เชั#น –2500.50) ใน

ข้อความ“([0-9]{2}[:][0-9]{2}[:][0-9]{2})” เป3นก์ารีคนหาเวลุ่า (เชั#น

10:20:40)ในข้อความ

Page 9: REGULAR  EXPRESSION  FUNCTION

ฟั!งก�ช้�นที่�ใช้�ใน Regular expression

Ereg ใชัคนหาต�วอ�ก์ษรีหรี�อก์ลุ่"#มค$าตามที่ �ได้ก์$าหนด้ไวที่ �ต�วเลุ่�อก์หรี�อเง��อนไข้แลุ่ะก์ารีคนหาจะม ความแตก์ต#างก์�นในต�วพื่�มพื่�เลุ่1ก์ก์�บต�วพื่�มพื่�ใหญ# ค�อ A จะไม#เที่#าก์�บ a

ร"ปแบบของคำ��สั��งint ereg(string patter,string text);

Page 10: REGULAR  EXPRESSION  FUNCTION

ตั�วอย่��ง ก�รใช้� ereg

<?$s = “เอก์สารีข้องผมเก์1บไวที่ � ..\home\joeถาเพื่��อนคนไหนสนใจก์1สามารีถ copy ได้ครี�บ”;if(ereg(“home”,$s)) {

echo “ในข้อความม ส��งที่ �ค"ณ์ตองก์ารี”;}else {

echo “ไม#ม ส��งที่ �ค"ณ์ตองก์ารีในข้อความที่ �คนหา”;

}flush();

?> ในข้อความม ส��งที่ �ค"ณ์ตองก์ารี

Page 11: REGULAR  EXPRESSION  FUNCTION

ตั�วอย่��งที่� 2<?

$s = “เอก์สารีข้องผมเก์1บไวที่ � ../home\joe ถาเพื่��อนคนไหนสนใจก์1

สามารีถ copy ได้ครี�บ “;if (ereg(“HOME”,$s)) {

echo “ในข้อความม ส��งที่ �ค"ณ์ตองก์ารี”;} else {

echo “ ไม#ม ส��งที่ �ค"ณ์ตองก์ารีในข้อความที่ �คนหา”;

}flush();

?>ไม#ม ส��งที่ �ค"ณ์ตองก์ารีในข้อความที่ �คนหา

Page 12: REGULAR  EXPRESSION  FUNCTION

ตั�วอย่��งที่� 3<?

$s = “เอก์สารีข้องผมไวที่ � ..\home\joe ถาเพื่��อนคนไหนสนใจก์1สามารีถ copy ได้ครี�บ”;

if(ereg(“([.]{1,2}([\][0-9a-zA-Z]*)*)”,$s)){

echo “ ในข้อความม ส��งที่ �ค"ณ์ตองก์ารี”;} else {

echo” ไม#ม ส��งที่ �ค"ณ์ตองก์ารีในข้อความที่ �คนหา”;}flush();

?> ในข้อความม ส��งที่ �ค"ณ์ตองก์ารี

Page 13: REGULAR  EXPRESSION  FUNCTION

Ereg_replace

ใชัคนหาต�วอ�ก์ษรีหรี�อก์ลุ่"#มข้องค$าเหม�อนก์�บฟั�งก์�ชั�น ereg() แต# ereg_replace ม ก์ารีเปลุ่ �ยนต�วอ�ก์ษรีหรี�อก์ลุ่"#มค$าที่ �พื่บในข้อความน�*นเป3นต�วอ�ก์ษรีหรี�อก์ลุ่"#มค$าใหม#

ร"ปแบบของคำ��สั��งstring ereg_replace(string

pattern, string replace,string text);

Page 14: REGULAR  EXPRESSION  FUNCTION

ตั�วอย่��งก�รใช้�Ereg_replace <?

$s = “ เอก์สารีข้องผมเก์1บไวที่ � ..\home\joeถาเพื่��อนคนไหนสนใจก์1สามารีถ copy ได้ครี�บ”;echo “ ข้อความก์#อนใชัฟั�งก์�ชั�น ereg_place<br>”;echo” => $s<br>”;echo “ข้อความหลุ่�งใชัฟั�งก์�ชั�น ereg_place<br>”;echo “=>”.ereg_replace(“home”,”home_replace”,$s);flush();

?>

Page 15: REGULAR  EXPRESSION  FUNCTION

Ereg_replace (ตั�อ)

ผลัลั�พธ์�ของโปรแกรมข้อความก์#อนใชัฟั�งก์�ชั�น ereg_place ==> เอก์สารีข้องผมเก์1บไวที่ � ..\home\joe ถาเพื่��อนคน

ไหนสนใจก์1สามารีถ copy ได้ครี�บ

ข้อความหลุ่�งใชั ฟั�งก์�ชั�น ereg_place==>เอก์สารีข้องผมเก์1บไวที่ � ..\home_replace\joe ถาเพื่��อนคนไหนสนใจ ก์1สามารีถ copy ได้ครี�บ

Page 16: REGULAR  EXPRESSION  FUNCTION

ต�วอย#าง<?

$s = “ เอก์สารีข้องผมเก์1บไวที่ � ..\home\joeถาเพื่��อนคนไหนสนใจก์1สามารีถ copy ได้ครี�บ”;echo “ ข้อความก์#อนใชัฟั�งก์�ชั�น ereg_place<br>”;echo “=> $s<br>”;echo “ ข้อความหลุ่�งใชัฟั�งก์�ชั�น ereg_place <br>”;echo “=>”.ereg_replace(“[.]{1,2}([\][0-9a-zA-Z]*)*)”,

”..\joe\system”,$s);flush();

?>

Page 17: REGULAR  EXPRESSION  FUNCTION

ผลุ่ลุ่�พื่ธ์�

ข้อความก์#อนใชัฟั�งก์�ชั�น ereg_place=> เอก์สารีข้องผมเก์1บไวที่ � ..\home\joe ถาเพื่��อน

คนไหนสนใจก์1สามารีถ copy ได้ครี�บข้อความหลุ่�งใชัฟั�งก์�ชั�น ereg_place=> เอก์สารีข้องผมเก์1บไวที่ � ..\joe\system ถา

เพื่��อนคนไหนสนใจก์1สามารีถ copy ได้ครี�บ

Page 18: REGULAR  EXPRESSION  FUNCTION

Eregi

ก์ารีที่$างานข้องฟั�งก์�ชั�น eregi() จะเหม�อนก์�บฟั�งก์�ชั�น ereg()

แต#ก์ารีใชัฟั�งก์�ชั�นeregi()คนหาต�วอ�ก์ษรีหรี�อก์ลุ่"#มข้องค$าน�*นต�วพื่�มพื่�เลุ่1ก์ก์�บ

ต�วพื่�มพื่�ใหญ#จะม ค#าที่ �ไม#แตก์ต#างก์�น ค�อ A จะม ค#าเที่#าก์�บ a

Page 19: REGULAR  EXPRESSION  FUNCTION

Eregi_replace

ก์ารีที่$าข้องฟั�งก์�ชั�น eregi_replace() จะเหม�อนก์�บฟั�งก์�ชั�น

ereg_replace() แต#ก์ารีคนหาต�วอ�ก์ษรีหรี�อก์ลุ่"#มข้องค$าน�*นต�วพื่�มพื่�เลุ่1ก์ก์�บ

ต�วพื่�มพื่�ใหญ#จะม ค#าที่ �ไม#แตก์ต#างก์�นค�อ A จะม ค#าเที่#าก์�บ a