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 (รีกูวล่า)
Moderators: mindphp, ผู้ดูแลกระดาน
-
- PHP Super Hero Member
- Posts: 604
- Joined: 07/12/2016 10:55 am
ทำความรู้จักกับภาษา python (47) : Regular Expression (รีกูวล่า)
Last edited by dawthana on 23/01/2017 2:53 pm, edited 1 time in total.
-
- PHP Super Hero Member
- Posts: 604
- Joined: 07/12/2016 10:55 am
Re: ทำความรู้จักกับภาษา python (47) : Regular Expression (รีกูวล่า)
สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ https://www.mindphp.com/vdo-tutorial-pyt ... ython.html
-
- Similar Topics
- Replies
- Views
- Last post
-
- 0 Replies
- 483 Views
-
Last post by M027
20/08/2015 10:02 am
-
-
อยากทราบว่า regular expression urllib คืออะไร ทำงานยังไงครับ
by บัวบุญ จันทะโคตร » 11/08/2017 3:17 pm » in Programming - C/C++ & java & Python - 1 Replies
- 300 Views
-
Last post by P'Eak
16/08/2017 9:08 pm
-
-
- 1 Replies
- 387 Views
-
Last post by mindphp
19/07/2017 3:42 am
-
-
ทำความรู้จักกับภาษา python (23) : การใช้ from...import (ฟอร์ม...อิมพอร์ต) ในภาษา python (ไพทอน)
by dawthana » 12/01/2017 3:24 pm » in Python Knowledge - 9 Replies
- 2536 Views
-
Last post by jirawoot
21/06/2019 10:07 am
-
-
- 8 Replies
- 2406 Views
-
Last post by bolue
09/06/2020 10:22 am
Who is online
Users browsing this forum: No registered users and 5 guests