ทำความรู้จักกับภาษา python (47) : Regular Expression (รีกูวล่า)

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderators: mindphp, ผู้ดูแลกระดาน

dawthana
PHP Super Hero Member
PHP Super Hero Member
Posts: 604
Joined: 07/12/2016 10:55 am

ทำความรู้จักกับภาษา python (47) : Regular Expression (รีกูวล่า)

Post by dawthana »

Regular Expression (รีกูวล่า)
Regular Expression.png
Regular Expression.png (14.17 KiB) Viewed 429 times
ในภาษา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
Last edited by dawthana on 23/01/2017 2:53 pm, edited 1 time in total.
dawthana
PHP Super Hero Member
PHP Super Hero Member
Posts: 604
Joined: 07/12/2016 10:55 am

Re: ทำความรู้จักกับภาษา python (47) : Regular Expression (รีกูวล่า)

Post by dawthana »

สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ https://www.mindphp.com/vdo-tutorial-pyt ... ython.html
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Python Knowledge”

Who is online

Users browsing this forum: Bing [Bot] and 14 guests