ให้เรตสมาชิก: 1 / 5

ดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

regular expression มีไว้สำหรับ ช่วยให้เราค้นหาข้อความตาม pattern
ใน python จะต้องโหลดโมดูล re เพื่อใช้งานความสามารถทางด้าน regular expression
ของ python ซึ่งโมดูลนี้ความสามารถเหมือนกับ ของ ภาษา Perl
ฟังก์ชั่น ในการค้นหา ข้อความตามรูปแบบที่ต้องการ
The match Function
re.match(pattern, string, flags=0)
re.search(pattern, string, flags=0)

pattern สำหรับใช้ค้นหาข้อความตามรูปแบบใน python ต้องขึ้นด้วย
 r'expression'
pattern คือ รูปแบบต้องที่เรากำหนดเพื่อหาความเหมือนในข้อความ
string คือข้อความที่ต้องการค้นหา
flags คือรูปแบบในการค้นหาดูได้ตามตาราง

ทั้งสองฟังก์ชั่นจะคือค่า object ที่เหมือนออกมา และ None ถ้าไม่เจอ เราสามารถใช้  group(num) or groups()

Regular-expression Modifiers - Option Flags

กำหนดรูปแบบในการค้นหา ถ้าต้องการใช้มากกว่า 1 กฏของการค้นหา เราสามารถใช้ or (|)

Modifier Description
re.I สนใจตัวพิมพ์เล็กพิมพ์ใหญ่
re.L Interprets words according to the current locale. This interpretation affects the alphabetic group (\w and \W), as well as word boundary behavior (\b and \B).
re.M

กำหนด $ ตรงตามจบบันทัด
กำหนด ^ ขึ้นต้นด้วยบันทัด

Makes $ match the end of a line (not just the end of the string) and makes ^ match the start of any line (not just the start of the string).

re.S

ใช้เครื่องหมาย . (dot) ตรงตามตัวอักษรใดๆ รวมถึงขึ้นบรรทัดใหม่ด้วย

Makes a period (dot) match any character, including a newline.

re.U

ตรงตามข้อความ unicode

Interprets letters according to the Unicode character set. This flag affects the behavior of \w, \W, \b, \B.

re.X

ไม่สนใจ ช่องว่าง

Permits "cuter" regular expression syntax. It ignores whitespace (except inside a set [] or when escaped by a backslash) and treats unescaped # as a comment marker.

Regular-expression patterns:

 Except for control characters, (+ ? . * ^ $ ( ) [ ] { } | \), all characters match themselves. You can escape a control character by preceding it with a backslash.

 ตางรางรุปบบ regular expression ที่สามารถใช้เป็นเงื่อนไขในการค้นหาได้ ใน python

Pattern Description
^ ตรง เริ่มต้นบรรทัด
$ ตรง สุดท้ายของบรรทัด
. ตรงตัวอักษรใดๆ ยกเว้นการขึ้นบรรทัดใหม่ ถ้าให้ตรงตามขึ้นบรรทัดใหม่ด้วย ให้ใช้ option m
[...] ตรงตัวอักษรใดๆ ในเครื่องหมาย []
[^...] Matches any single character not in brackets
re* Matches 0 or more occurrences of preceding expression.
re+ Matches 1 or more occurrence of preceding expression.
re? Matches 0 or 1 occurrence of preceding expression.
re{ n} Matches exactly n number of occurrences of preceding expression.
re{ n,} Matches n or more occurrences of preceding expression.
re{ n, m} Matches at least n and at most m occurrences of preceding expression.
a| b Matches either a or b.
(re) Groups regular expressions and remembers matched text.
(?imx) Temporarily toggles on i, m, or x options within a regular expression. If in parentheses, only that area is affected.
(?-imx) Temporarily toggles off i, m, or x options within a regular expression. If in parentheses, only that area is affected.
(?: re) Groups regular expressions without remembering matched text.
(?imx: re) Temporarily toggles on i, m, or x options within parentheses.
(?-imx: re) Temporarily toggles off i, m, or x options within parentheses.
(?#...) Comment.
(?= re) Specifies position using a pattern. Doesn't have a range.
(?! re) Specifies position using pattern negation. Doesn't have a range.
(?> re) Matches independent pattern without backtracking.
\w Matches word characters.
\W Matches nonword characters.
\s Matches whitespace. Equivalent to [\t\n\r\f].
\S Matches nonwhitespace.
\d Matches digits. Equivalent to [0-9].
\D Matches nondigits.
\A Matches beginning of string.
\Z Matches end of string. If a newline exists, it matches just before newline.
\z Matches end of string.
\G Matches point where last match finished.
\b Matches word boundaries when outside brackets. Matches backspace (0x08) when inside brackets.
\B Matches nonword boundaries.
\n, \t, etc. Matches newlines, carriage returns, tabs, etc.
\1...\9 Matches nth grouped subexpression.
\10 Matches nth grouped subexpression if it matched already. Otherwise refers to the octal representation of a character code.

 

Regular-expression Examples

Literal characters:

Example Description
python Match "python".

Character classes:

Example Description
[Pp]ython Match "Python" or "python"
rub[ye] Match "ruby" or "rube"
[aeiou] Match any one lowercase vowel
[0-9] Match any digit; same as [0123456789]
[a-z] Match any lowercase ASCII letter
[A-Z] Match any uppercase ASCII letter
[a-zA-Z0-9] Match any of the above
[^aeiou] Match anything other than a lowercase vowel
[^0-9] Match anything other than a digit

Special Character Classes:

Example Description
. Match any character except newline
\d Match a digit: [0-9]
\D Match a nondigit: [^0-9]
\s Match a whitespace character: [ \t\r\n\f]
\S Match nonwhitespace: [^ \t\r\n\f]
\w Match a single word character: [A-Za-z0-9_]
\W Match a nonword character: [^A-Za-z0-9_]

Repetition Cases:

Example Description
ruby? Match "rub" or "ruby": the y is optional
ruby* Match "rub" plus 0 or more ys
ruby+ Match "rub" plus 1 or more ys
\d{3} Match exactly 3 digits
\d{3,} Match 3 or more digits
\d{3,5} Match 3, 4, or 5 digits

Nongreedy repetition:

This matches the smallest number of repetitions:

Example Description
<.*> Greedy repetition: matches "<python>perl>"
<.*?> Nongreedy: matches "<python>" in "<python>perl>"

Grouping with parentheses:

Example Description
\D\d+ No group: + repeats \d
(\D\d)+ Grouped: + repeats \D\d pair
([Pp]ython(, )?)+ Match "Python", "Python, python, python", etc.

Backreferences:

This matches a previously matched group again:

Example Description
([Pp])ython&\1ails Match python&pails or Python&Pails
(['"])[^\1]*\1 Single or double-quoted string. \1 matches whatever the 1st group matched . \2 matches whatever the 2nd group matched, etc.

Alternatives:

Example Description
python|perl Match "python" or "perl"
rub(y|le)) Match "ruby" or "ruble"
Python(!+|\?) "Python" followed by one or more ! or one ?

Anchors:

This needs to specify match position.

Example Description
^Python Match "Python" at the start of a string or internal line
Python$ Match "Python" at the end of a string or line
\APython Match "Python" at the start of a string
Python\Z Match "Python" at the end of a string
\bPython\b Match "Python" at a word boundary
\brub\B \B is nonword boundary: match "rub" in "rube" and "ruby" but not alone
Python(?=!) Match "Python", if followed by an exclamation point
Python(?!!) Match "Python", if not followed by an exclamation point

Special syntax with parentheses:

Example Description
R(?#comment) Matches "R". All the rest is a comment
R(?i)uby Case-insensitive while matching "uby"
R(?i:uby) Same as above
rub(?:y|le)) Group only without creating \1 backreference

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
อยากทราบคำสั่งสำหรับวนลูปในการคลิกเลือกหน้าถัดไป
โดย Panchalee ส 17 ก.พ. 2018 6:40 pm บอร์ด Programming - C/C++ & java & Python
0
2
ส 17 ก.พ. 2018 6:40 pm โดย Panchalee
วิธีการติดตั้งเวอร์ชั่น php ในโปรแกรม Laragon
โดย Parichat ส 17 ก.พ. 2018 6:31 pm บอร์ด PHP Knowledge
0
2
ส 17 ก.พ. 2018 6:31 pm โดย Parichat
ปัญหาเรื่องบทความComponent, Module และ Plug in แตกต่างกันอย่างไร
โดย alisa93 ส 17 ก.พ. 2018 11:33 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
14
ส 17 ก.พ. 2018 2:27 pm โดย mindphp
ปัญหาเรื่องบทความ Joomla Extension
โดย alisa93 ส 17 ก.พ. 2018 10:56 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
15
ส 17 ก.พ. 2018 2:34 pm โดย mindphp
Selenium : คำสั่งสำหรับเช็ค Error ความสมบูรณ์ที่หน้าเว็บ
โดย Panchalee ศ 16 ก.พ. 2018 3:53 pm บอร์ด Software testing
0
8
ศ 16 ก.พ. 2018 3:53 pm โดย Panchalee
การสร้าง URL ให้แสดงทั้งไอดีทั้งจังหวัดต้องทำอย่างไรค่ะ
โดย Parichat ศ 16 ก.พ. 2018 2:40 pm บอร์ด Joomla Development
1
18
ศ 16 ก.พ. 2018 2:50 pm โดย tsukasaz
การสร้าง URL ให้แสดงทั้งลิ้งทั้งจังหวัดต้องทำอย่างไรค่ะ
โดย Parichat ศ 16 ก.พ. 2018 2:39 pm บอร์ด Joomla Development
3
25
ศ 16 ก.พ. 2018 3:23 pm โดย Parichat
อยากทราบคำสั่งสำหรับการเช็ค Error ในกรณีที่หน้าเว็บโหลดขึ้นไม่ครบ
โดย Panchalee ศ 16 ก.พ. 2018 2:14 pm บอร์ด Programming - C/C++ & java & Python
1
19
ศ 16 ก.พ. 2018 2:16 pm โดย thatsawan
ความเเตกต่าง ระหว่าง python 2 - python 3
โดย Jom07 ศ 16 ก.พ. 2018 1:48 pm บอร์ด Python Knowledge
0
21
ศ 16 ก.พ. 2018 1:48 pm โดย Jom07
Selenium : การใช้คำสั่งวนลูปใน xpath
โดย Panchalee ศ 16 ก.พ. 2018 1:44 pm บอร์ด Software testing
0
16
ศ 16 ก.พ. 2018 1:44 pm โดย Panchalee
จะขอถามเรื่องการเข้าไปดูผลลัพธ์ที่สร้าง Component ที่ชื่อว่า OS Responsive Image Gallery ยังไงค่ะ
โดย Parichat ศ 16 ก.พ. 2018 1:35 pm บอร์ด Joomla Development
2
24
ศ 16 ก.พ. 2018 1:55 pm โดย Parichat
OS Responsive Image Gallery(โอเอส เรสปอน์ซีฟอิมเมดแกลเลอรี่)-Component แกลเลอรี Joomla ที่เรียบง่าย
โดย Parichat ศ 16 ก.พ. 2018 1:29 pm บอร์ด Joomla Extension Review
0
12
ศ 16 ก.พ. 2018 1:29 pm โดย Parichat
การ์ดจอ กับ สโมสร ลิเวอร์พูล
โดย Before Dong ศ 16 ก.พ. 2018 10:33 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
18
ศ 16 ก.พ. 2018 2:07 pm โดย jobyjob
สอบถามค่ะ การยื่นภงด.1ก ยืนไม่ตรงกับภงด 1 ใบแนบเเต่ละเดือนเป็นไปได้มั้ยค่ะ
โดย thatsawan ศ 16 ก.พ. 2018 10:09 am บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
3
18
ศ 16 ก.พ. 2018 10:15 am โดย atipornh
การทำ webdriver บน Python GUI (Tkinter)
โดย Jom07 พฤ 15 ก.พ. 2018 6:48 pm บอร์ด Software testing
0
29
พฤ 15 ก.พ. 2018 6:48 pm โดย Jom07
ติดตั้ง Template ลงใน Joomle ไม่ได้ค่ะ
โดย Parichat พฤ 15 ก.พ. 2018 2:47 pm บอร์ด Joomla Development
4
25
พฤ 15 ก.พ. 2018 3:19 pm โดย Parichat
ออกรถยนต์ใหม่ป้ายแดงดาวน์ 0% ( ไม่ต้องใช้เงินดาวน์เลยแม้แต่บาทเดียว)
โดย bank16947 พฤ 15 ก.พ. 2018 10:09 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
18
พฤ 15 ก.พ. 2018 10:09 am โดย bank16947
รวมกลุ่มเฟสบุ๊คเกี่ยวกับ IT, Technology, CES
โดย AePongsak พฤ 15 ก.พ. 2018 10:08 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
6
59
ศ 16 ก.พ. 2018 11:51 am โดย AePongsak
งานประจำวันที่ 15 กุมภาพันธ์ 2561
โดย Alisasukkeaw พฤ 15 ก.พ. 2018 9:49 am บอร์ด M054 - อลิสา สุขเขียว
2
13
ศ 16 ก.พ. 2018 3:12 am โดย mindphp
Joomla กดอัพเดท 2.5.28 เป็น 3.5.1 แล้วเข้าเวปไม่ได้
โดย suwanna พ 14 ก.พ. 2018 5:51 pm บอร์ด Joomla Development
16
111
ศ 16 ก.พ. 2018 10:21 am โดย tsukasaz