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

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

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

dawthana
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 604
ลงทะเบียนเมื่อ: 07/12/2016 10:55 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย dawthana »

Regular Expression (รีกูวล่า)
Regular Expression.png
Regular Expression.png (14.17 KiB) Viewed 964 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
แก้ไขล่าสุดโดย dawthana เมื่อ 23/01/2017 2:53 pm, แก้ไขไปแล้ว 1 ครั้ง.
dawthana
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 604
ลงทะเบียนเมื่อ: 07/12/2016 10:55 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย dawthana »

สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ https://www.mindphp.com/vdo-tutorial-pyt ... ython.html
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: Google Adsense [Bot] และบุคลทั่วไป 56