Python RegEx
- หน้าก่อน Python JSON
- หน้าต่อไป Python PIP
RegEx หรือ แบบแสดงมาตรฐานตรวจสอบคือตัวอักษรที่ใช้ในการสร้างโมดูลที่ต้องการค้นหา
RegEx สามารถใช้เพื่อตรวจสอบว่าตัวอักษรสายความหมายหรือไม่มีโมดูลที่ต้องการค้นหา
RegEx
Python มีโมดูลที่ชื่อ re
Python ภาษาในแนวทางเดียวกัน ซึ่งสามารถใช้ในการจัดการ Regular Expression
import re
มอดูล
import re
Python ภาษาแปลงฟอร์มแบบ RegEx
import re
หลังจากนำมอดูลเข้ามาใช้ ก็สามารถเริ่มใช้ Regular Expression แล้ว
ตัวอย่าง
ตรวจสอบคำว่าเพื่อดูว่ามันเริ่มต้นด้วย "China" และสิ้นสุดด้วย "country"
import re txt = "China is a great country" x = re.search("^China.*country$", txt)
RegEx ฟังก์ชัน
re
มอดูลได้ให้เราใช้ฟังก์ชันเพื่อหาคำว่าที่ตรงกัน
ฟังก์ชัน | รายละเอียด |
---|---|
findall | คืนรายการที่มีการตรวจสอบทุกครั้ง |
search | ถ้ามีการตรวจสอบที่ตรงกันกับคำว่าในทุกตำแหน่งของคำว่า ก็จะคืนค่าวัตถุ Match |
split | คืนค่ารายการที่แบ่งจากคำว่าในการตรวจสอบทุกครั้ง |
sub | แทนที่คำว่าที่ตรงกันกับคำว่าที่มีความหมายเฉพาะ |
元字符
ตัวอักษรเฉพาะหมายเฉพาะคือตัวอักษรที่มีความหมายเฉพาะ
ตัวอักษร | รายละเอียด | ตัวอย่าง | TIY |
---|---|---|---|
[] | กลุ่มตัวอักษร | "[a-m]" | ลองด้วยตัวเอง |
\ | ตัวตัวเฉพาะที่มีความหมายเฉพาะ (ก็สามารถใช้สำหรับการหลีกเลี่ยงตัวเฉพาะ) | "\d" | ลองด้วยตัวเอง |
. | ตัวอักษรที่แทนที่ด้วยเฉพาะ (ยกเว้นบรรทัดใต้) | "he..o" | ลองด้วยตัวเอง |
^ | เริ่มต้นด้วย | "^hello" | ลองด้วยตัวเอง |
$ | สิ้นสุดด้วย | "world$" | ลองด้วยตัวเอง |
* | เกิดขึ้นเป็นครั้งแรกหรือหลายครั้ง | "aix*" | ลองด้วยตัวเอง |
+ | เกิดขึ้นหนึ่งครั้งหรือหลายครั้ง | "aix+" | ลองด้วยตัวเอง |
{} | ออกแบบให้แสดงความหมายของจำนวนที่ระบุ | "al{2}" | ลองด้วยตัวเอง |
| | โดยแบบเลือกทั้งสอง | "falls|stays" | ลองด้วยตัวเอง |
() | 捕获和分组 |
特殊序列
ตัวตัวเฉพาะที่มีความหมายเฉพาะ \
หลังจากตัวอักษรดังนี้ จะมีความหมายเฉพาะ
ตัวอักษร | รายละเอียด | ตัวอย่าง | TIY |
---|---|---|---|
\A | ถ้าตัวอักษรที่กำหนดตั้งอยู่ที่ต้นของคำว่า ก็จะคืนค่าที่ตรงกัน | "\AThe" | ลองด้วยตัวเอง |
\b | คืนค่าที่ตรงกัน ซึ่งตัวอักษรที่กำหนดตั้งอยู่ตั้งอยู่ที่ต้นคำว่าหรือท้ายคำว่า |
r"\bain" r"ain\b" |
ลองด้วยตัวเอง ลองด้วยตัวเอง |
\B | คืนค่าที่ตรงกัน ซึ่งตัวอักษรที่กำหนดตั้งอยู่มีอยู่ แต่ไม่ตั้งอยู่ที่ต้นคำว่า (หรือท้ายคำว่า) |
r"\Bain" r"ain\B" |
ลองด้วยตัวเอง ลองด้วยตัวเอง |
\d | คืนค่าที่ตรงกัน ซึ่งคำว่ามีตัวเลข (ตัวเลข 0-9) | "\d" | ลองด้วยตัวเอง |
\D | คืนค่าที่ตรงกัน ซึ่งคำว่าไม่มีตัวเลข | "\D" | ลองด้วยตัวเอง |
\s | คืนค่าที่ตรงกัน ซึ่งคำว่ามีอักษรเปลว | "\s" | ลองด้วยตัวเอง |
\S | คืนค่าที่ตรงกัน ซึ่งคำว่าไม่มีอักษรเปลว | "\S" | ลองด้วยตัวเอง |
\w | คืนค่าที่ตรงกัน ซึ่งคำว่ามีตัวอักษรภาษาอังกฤษใดๆ ตัวอักษร (จาก a ถึง Z) ตัวเลข (จาก 0 ถึง 9) และตัวอักษรใต้สระ _ |
"\w" | ลองด้วยตัวเอง |
\W | คืนค่าที่ตรงกัน ซึ่งคำว่าไม่มีตัวอักษรภาษาอังกฤษใดๆ | "\W" | ลองด้วยตัวเอง |
\Z | ถ้าตัวอักษรที่กำหนดตั้งอยู่ที่ท้ายของคำว่า ก็จะคืนค่าที่ตรงกัน | "Spain\Z" | ลองด้วยตัวเอง |
集合(Set)
ชุด (Set) คือคู่ของวงเปิดที่มีความหมาย []
เป็นกลุ่มตัวอักษรที่มีความหมายพิเศษภายใน
ชุด | รายละเอียด | ลองด้วยตัวเอง |
---|---|---|
[arn] | กลับค่าตัวอักษรที่มีอยู่ในตัวอักษรที่ระบุ (a, r, n) หนึ่งในนั้น | ลองด้วยตัวเอง |
[a-n] | กลับค่าตัวอักษรตัวเล็กที่อยู่ระหว่างตัวอักษร a และ n | ลองด้วยตัวเอง |
[^arn] | กลับค่าตัวอักษรที่ไม่ได้เป็น a, r, n | ลองด้วยตัวเอง |
[0123] | กลับค่าตัวเลขที่มีอยู่ในตัวเลขที่ระบุ (0, 1, 2, 3) | ลองด้วยตัวเอง |
[0-9] | กลับค่าตัวเลขที่อยู่ระหว่าง 0 ถึง 9 | ลองด้วยตัวเอง |
[0-5][0-9] | กลับค่าตัวเลขที่อยู่ระหว่าง 0 ถึง 9 | ลองด้วยตัวเอง |
[a-zA-Z] | กลับค่าตัวอักษรที่อยู่ระหว่างตัวอักษร a และ z ทั้งหมด ตัวเล็กหรือตัวใหญ่ | ลองด้วยตัวเอง |
[+] | ในชุด ระบุ +, *, ., |, (), $, {} ไม่มีความหมายพิเศษ ดังนั้น [+] หมายถึง | ลองด้วยตัวเอง |
ฟังก์ชัน findall()
findall()
ฟังก์ชันกลับค่าคือรายการที่มีการตรงกันข้ามทั้งหมด
ตัวอย่าง
แสดงรายการที่ตรงกันข้ามทั้งหมด
import re str = "China is a great country" x = re.findall("a", str) print(x)
รายการนี้มีการตรงกันข้ามที่ถูกหาได้ในลำดับที่
หากไม่พบการตรงกันข้าม กลับค่าคือรายการว่าง
ตัวอย่าง
หากไม่พบการตรงกันข้าม กลับค่าคือรายการว่าง
import re str = "China is a great country" x = re.findall("USA", str) print(x)
ฟังก์ชัน search()
search()
ฟังก์ชันค้นหาตัวอักษรที่ตรงกันข้ามในข้อความ หากมีการตรงกันข้าม กลับค่าคืออนุตัวเอกสาร Match
หากมีการตรงกันข้ามหลายครั้ง กลับค่าเพียงค่าตรงกันข้ามแรกเท่านั้น
ตัวอย่าง
ค้นหาตัวอักษรช่องว่างแรกในข้อความ
import re str = "China is a great country" x = re.search("\s", str) print("ตำแหน่งของตัวอักษรช่องว่างแรกคือ:\n", x.start())
หากไม่พบค่าที่ตรงกัน กลับค่าคือ None
:
ตัวอย่าง
ค้นหาโดยไม่กลับค่ามิใช่ค่าที่ตรงกัน
import re str = "China is a great country" x = re.search("USA", str) print(x)
ฟังก์ชัน split()
split()
ฟังก์ชันกลับค่าคือรายการที่ข้อความถูกแยกทุกครั้งที่พบ
ตัวอย่าง
แยกข้อความที่มีช่องว่าง
import re str = "China is a great country" x = re.split("\s", str) print(x)
คุณสามารถกำหนด maxsplit
ตัวแปรเพื่อควบคุมจำนวนการเกิดขึ้น
ตัวอย่าง
แยกข้อความเมื่อเกิดขึ้นครั้งแรกเท่านั้น
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
ฟังก์ชัน sub()
sub()
ฟังก์ชันแทนที่ตัวอักษรที่ตรงกันข้ามด้วยข้อความที่คุณเลือก
ตัวอย่าง
ใช้ตัวเลข 9 แทนช่องว่างทุกตัว
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
คุณสามารถกำหนด count
จุดประสงค์ของตัวพักตรง
ตัวอย่าง
แทนความหลากหลาย
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
อ็ปเจกษ์การตรวจพบ
อ็ปเจกษ์การตรวจพบเป็นอ็ปเจกษ์ที่มีรายละเอียดและผลลัพธ์ของการค้นหา
หมายเหตุ:ถ้าไม่มีการตรวจพบ จะคืนค่า None
แทน Match อ็ปเจกษ์
ตัวอย่าง
การปฏิบัติจะคืนอ็ปเจกษ์การค้นหา
import re str = "China is a great country" x = re.search("a", str) print(x) # จะพิมพ์อ็ปเจกษ์
Match อ็ปเจกษ์มีรายละเอียดและหน้าที่เพื่อเอาความรู้เกี่ยวกับการค้นหาและผลลัพธ์
span()
ตัวแปรที่คืนค่าเป็นตัวแปรประกอบที่มีตำแหน่งเริ่มต้นและสิ้นสุดของการตรวจพบ.string
คืนค่าตัวอักษรที่ใส่สู่ฟังก์ชันgroup()
คืนค่าส่วนของตัวอักษรที่ตรงกับการค้นหา
ตัวอย่าง
พิมพ์ตำแหน่งที่การตรวจพบแรกปรากฏขึ้น (ตำแหน่งเริ่มต้นและสิ้นสุด)
ค้นหาแบบมาตรฐานที่เริ่มต้นด้วยตัวอักษรใหญ่ "C"
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
ตัวอย่าง
พิมพ์ตัวอักษรที่ใส่สู่ฟังก์ชัน
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
ตัวอย่าง
พิมพ์ส่วนของตัวอักษรที่ตรงกับการค้นหา
ค้นหาแบบมาตรฐานที่เริ่มต้นด้วยตัวอักษรใหญ่ "C"
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
หมายเหตุ:ถ้าไม่มีการตรวจพบ จะคืนค่า None
แทน Match อ็ปเจกษ์
- หน้าก่อน Python JSON
- หน้าต่อไป Python PIP