Regular Expression (รีกูวล่า)
python (ไพทอน)มี Regular Expression ไว้สำหรับช่วยใหเราค้นหาตาม pattern (แพทเทิล) ที่กำหนดโดยจะต้องทำการโหลดโมดูล re (รี) เพื่อใช้งานความสามารถของ Regular Expression ได้
ฟังก์ชันที่ใช้ในการทำ Regular Expression
ฟังก์ชันในการค้นหาคำที่ต้องการด้วย
- re.match(pattern, string, flags=0)
- re.search(pattern, string, flags=0)
- re.sub(pattern, string, flags=0)
ประกอบด้วย Parameter ในการค้นหาข้อความที่ต้องการ
Pattern รูปแบบที่กำหนดเพื่อหาความเหมือนในข้อความ และต้องขึ้นต้นด้วย r’expression เสมอ
String ข้อความที่ต้องการค้นหา
Flags รูปแบบในการค้นหา
Option Flags รูปแบบในการค้นหา
re.I (อาร์อี.ไอ) คือไม่สนใจว่าจะเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่
re.L (อาร์อี.แอล) คือการแปลความหมายนี้มีผลอต่อกลุ่มตัวอักษร (w\ และ \W) เช่นเดียวกับกลุ่ม (\b และ \B)
re.M (อาร์อี.เอ็ม) คือกำหนด $ ตรงตามจบบรรทัด และกำหนด ^ ขึ้นต้นด้วยบรรทัด
re.S (อาร์อี.เอส) คือใช้เครื่องหมาย . ตรงตามตัวอักษรใดๆ รวมถึงขึ้นบรรทัดใหม่ด้วย
re.U (อาร์อี.ยู) คือตรงตามข้อความ Unicode หรือ สามารถค้นหาแบบ Unicode ได้ด้วย
re.X (อาร์อี.เอ็กซ์) คือไม่สนใจช่องว่าง
Regular expression Patterns
^ ใช้กำหนดจุดเริ่มต้น คือต้องเริ่มต้นจาก เช่น ^python
$ ใช้กำหนดจุดสิ้นสุด คือต้องลงท้าย เช่น python$
. ตรงตัวอักษรใดๆ ยกเว้นการขึ้นบรรทัดใหม่
[…] ใช้กำหนดขอบเขตของตัวอักษรที่ต้องมี เช่น [ABC]
[^…] ใช้กำหนดขอบเขตของตัวอักษรที่ห้ามมี เช่น [^ABC] คือห้ามมี ABC
*ใช้แทนจำนวนที่มีค่าเท่าไหร่ก็ได้ และถ้าไม่มีก็ได้
? ใช้แทนจำนวนที่มีค่าไม่เกิน 1 ตัว และถ้าไม่มีก็ได้
{n} ใช้แทนจำนวนที่มี n ตัว
{n,} ใช้แทนจำนวนที่มีอย่างน้อย n ตัว
{n,m} ใช้แทนจำนวนที่มีอย่างน้อย n ตัว แต่ไม่เกิน m ตัว
alb ใช้กำหนดว่าต้องมีตัวอักษรตัวใดตัวหนึ่ง เช่น alb
(re) ใช้กำหนดกลุ่มข้อความที่ต้องการค้นหา
\d ใช้แทน [0-9]
\D ใช้แทน [^0-9] คือ ห้ามมี 0-9
\s ใช้แทน [\t\n\r\f\v]
\S ใช้แทน [^\t\n\r\f\v] คือห้ามมี [\t\n\r\f\v]
\w ใช้แทน [a-z A-Z 0-9]
\W ใช้แทน [^a-z A-Z 0-9] คือห้ามมี [a-z A-Z 0-9]
ตัวอย่างการใช้ Regular expression
[Pp]ython หมายถึง ค่าที่ต้องการจะเป็นคำว่า Python หรือ python ก็ได้
rub[ye] หมายถึง คำที่ต้องการจะเป็นคำว่า ruby (รูบี้) หรือ rube (รูบี้) ก็ได้
[aeiou] หมายถึงคำที่ต้องการจะต้องมี a e i o u ตัวใดตัวหนึ่งหรือทั้งหมดก็ได้
[0-9] หมายถึง คำที่ต้องการจะต้องมีตัวเลข
[a-z] หมายถึง คำที่ต้องการจะต้องเป็นตัวอักษรตัวพิมพ์เล็กเท่านั้น
[A-Z] หมายถึง คำที่ต้องการจะต้องเป็นตัวอักษรใหญ่เท่านั้น
[a-z A-Z 0-9] หมายถึง คำที่ต้องการจะต้องเป็น ตัวอักษรพิมพ์ใหญ่ ตัวอักษรพิมพ์เล็ก หรือตัวเลข
[^aeiou] หมายถึง คำที่ต้องการจะต้องไม่มี a e i o u ตัวใดตัวหนึ่ง
[^0-9] หมายถึง คำที่ต้องการจะต้องไม่มีตัวเลข
^Python หมายถึง ข้อความจะต้องขึ้นต้นด้วยคำว่า Python
Python$ หมายถึง ข้อความจะต้องจบด้วยคำว่า Python
ศึกษาข้อมูลมาจาก https://www.youtube.com/watch?v=zF3V2ZH ... M&index=47
ในภาษาทำความรู้จักกับภาษา python (47) : Regular Expression (รีกูวล่า)
Moderator: mindphp, ผู้ดูแลกระดาน
-
- PHP Super Hero Member
- โพสต์: 604
- ลงทะเบียนเมื่อ: 07/12/2016 10:55 am
ทำความรู้จักกับภาษา python (47) : Regular Expression (รีกูวล่า)
แก้ไขล่าสุดโดย dawthana เมื่อ 23/01/2017 2:53 pm, แก้ไขไปแล้ว 1 ครั้ง.
-
- PHP Super Hero Member
- โพสต์: 604
- ลงทะเบียนเมื่อ: 07/12/2016 10:55 am
Re: ทำความรู้จักกับภาษา python (47) : Regular Expression (รีกูวล่า)
สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ https://www.mindphp.com/vdo-tutorial-pyt ... ython.html
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ สัญลักษณ์ที่ใช้เขียน Regular Expression
โดย M027 » 20/08/2015 10:02 am » ใน Programming - PHP - 0 ตอบกลับ
- 775 แสดง
-
โพสต์ล่าสุด โดย M027
20/08/2015 10:02 am
-
-
-
โพสต์ใหม่ สอบถามวิธีการเขียน Regular Expression สำหรับแบ่งข้อความใน php
โดย flook » 08/08/2023 4:39 pm » ใน Programming - PHP - 3 ตอบกลับ
- 1918 แสดง
-
โพสต์ล่าสุด โดย flook
09/08/2023 6:00 pm
-
-
-
โพสต์ใหม่ อยากทราบว่า regular expression urllib คืออะไร ทำงานยังไงครับ
โดย บัวบุญ จันทะโคตร » 11/08/2017 3:17 pm » ใน Programming - C/C++ & java & Python - 1 ตอบกลับ
- 626 แสดง
-
โพสต์ล่าสุด โดย P'Eak
16/08/2017 9:08 pm
-
-
- 1 ตอบกลับ
- 697 แสดง
-
โพสต์ล่าสุด โดย mindphp
19/07/2017 3:42 am
-
- 0 ตอบกลับ
- 743 แสดง
-
โพสต์ล่าสุด โดย thatsawan
01/12/2014 10:14 am
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: Google Adsense [Bot] และบุคลทั่วไป 56