[PHP]ถาม regular expression เบื้องต้นครับ

เริ่มโดย nokia201, 22 พฤษภาคม 2013, 21:35:01

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

nokia201

$pattern="[a-z][a-z]+@[a-z][a-z]+.([a-z]+)";
$pattern="^[a-z][a-z]+@[a-z][a-z]+.([a-z]+)$";
อยากถามว่าสองอันนี้มันก็เหมือนกันไม่ใช่หรอครับ
ทำไมเราต้อง ^และ$ ด้วยหละครับไม่เมื่อถ้าเราไม่ใส่ a-z เริ่มต้นและท้ายไปมันก็จะ error อยู่ดี
ไม่เห็นต้องใส่ ^และ$ เพื่อให้แมทตัวแรกกับสุดท้ายเลยครับ
แล้วก็สตริงย่อยด้วยครับ () ผมใส่ไปมันก็ไม่เห็นมีอะไรเปลี่ยนแปลงเลยเหมือน [a-z]+ ปกติอะครับ
ปล.กำลังฝึกตามหนังสือครับแต่ข้องใจเพราะหนังสือไม่อธิบาย
:wanwan017: :wanwan017: :wanwan017: :wanwan017:
ขายสคริปปั้มไลค์ตามเว็บดูหนังใช้กันสนใจ PM ครับ

seowizard

มันเหมือนกัน เพราะ pattern แรกมันสมบูรณ์ในตัวมันอยู่แล้วครับ จะใส่ ^ และ $ มันก็เลยไม่มีผลอะไร
Regular Expression มีวิธีเขียนได้หลายแบบ โดยผลลัพธ์ที่ออกมาตรงกัน มันมีความยืดหยุ่นสูง

dead13th

ขึ้นอยู่กับความต้องการครับ

เอาง่ายๆนะครับ

$pattern="[a-z][a-z]+@[a-z][a-z]+.([a-z]+)"; จะmatch กับ
"กกกกกกกกก[email protected]"

แต่
$pattern="^[a-z][a-z]+@[a-z][a-z]+.([a-z]+)$";  จะไม่match กับ
"กกกกกกกกก[email protected]"

ถ้าคุณต้องการ
"กกกกกกกกก[email protected]"

ด้วย คุณก็ใช้อันแรกได้ครับ



นิดนะครับ ถ้าคุณต้องการใช้ . ที่เป็นอักขระจริงๆ ต้อง \. (escape) ด้วยนะครับ

สงสัยเพิ่มเติมถามได้ครับ
เว็บลงประกาศฟรี www.post2ads.net

adidog

เป็นอะไรที่งงจริงๆ regx เนี่ย ใครมีลิงค์หรือหนังสือแนะนำบ้างมั๊ยครับ  :-[ :-[ :-[
Certain Dri [direct=http://www.ishiclub.com/]Certain Dri[/direct]
คุณแม่มือใหม่ [direct=http://www.mamyget.com/]คุณแม่มือใหม่[/direct]

dead13th

http://www.regular-expressions.info/

เลยครับ

แต่ถ้าสนใจแก้ปัญหาเป็น case ปรึกษาได้ครับ

ความรุ้เรื่อง regexp จะมีประโยชน์มากในเรื่องการ verified การ crawl (เก็บข้อมูล) หรือ การ แก้ไขข้อมูลให้ออกมาในรูปแบบที่ต้องการครับ

เว็บลงประกาศฟรี www.post2ads.net

nokia201

ขอบคุณทุกท่านครับแบบนี้นี่เอง ท่าน dead13th ข้อมูลท่านปึกมากครับ   :wanwan021:
ขายสคริปปั้มไลค์ตามเว็บดูหนังใช้กันสนใจ PM ครับ

dekmv

อ้างถึงจาก: dead13th ใน 23 พฤษภาคม 2013, 10:42:46
ขึ้นอยู่กับความต้องการครับ

เอาง่ายๆนะครับ

$pattern="[a-z][a-z]+@[a-z][a-z]+.([a-z]+)"; จะmatch กับ
"กกกกกกกกก[email protected]"

แต่
$pattern="^[a-z][a-z]+@[a-z][a-z]+.([a-z]+)$";  จะไม่match กับ
"กกกกกกกกก[email protected]"

ถ้าคุณต้องการ
"กกกกกกกกก[email protected]"

ด้วย คุณก็ใช้อันแรกได้ครับ



นิดนะครับ ถ้าคุณต้องการใช้ . ที่เป็นอักขระจริงๆ ต้อง \. (escape) ด้วยนะครับ

สงสัยเพิ่มเติมถามได้ครับ


เน้นมากครับ แต่ผมงง ! เดี๋ยวทำความเข้าใจไปเรื่อยๆครับ ... ^^