วงเล็บปีกกาในนิพจน์ทั่วไปของ Python

โอเปอเรเตอร์ '+', '*', '?' นั้นใช้งานได้ดี อย่างไรก็ตาม ไม่สามารถระบุ จำนวนการทำซ้ำที่แน่นอนได้ด้วยโอเปอเรเตอร์เหล่านี้ ในกรณีนี้ โอเปอเรเตอร์ {} จะมาช่วยคุณ

มันทำงานดังนี้: {5} - ทำซ้ำห้าครั้ง, {2,5} – ทำซ้ำ จากสองถึงห้าครั้ง (รวมทั้งสองจำนวน), {2,} - ทำซ้ำสองครั้งขึ้นไป ดู ตัวอย่าง:

ตัวอย่าง

ในตัวอย่างนี้ แพตเทิร์นการค้นหาคือ ดังนี้: ตัวอักษร 'x', ตัวอักษร 'a' หนึ่งหรือสองครั้ง, ตัวอักษร 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

ผลลัพธ์ของการรันโค้ด:

python'xx ! ! xaaax'

ตัวอย่าง

ในตัวอย่างนี้ แพตเทิร์นการค้นหาคือ ดังนี้: ตัวอักษร 'x', ตัวอักษร 'a' สองครั้งขึ้นไป, ตัวอักษร 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

ผลลัพธ์ของการรันโค้ด:

python'xx xax ! !'

ตัวอย่าง

ในตัวอย่างนี้ แพตเทิร์นการค้นหาคือ ดังนี้: ตัวอักษร 'x', ตัวอักษร 'a' สามครั้ง, ตัวอักษร 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

ผลลัพธ์ของการรันโค้ด:

python'xx xax xaax !'

ตัวอย่าง

ในตัวอย่างนี้ แพตเทิร์นการค้นหาคือ ดังนี้: ตัวอักษร 'a' สิบครั้ง:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

ผลลัพธ์ของการรันโค้ด:

python'aaa ! aaa'

ตัวอย่าง

ในตัวอย่างนี้ มีแพตเทิร์นดังนี้: ตัวอักษร 'x', ตัวอักษร 'a' สามครั้งหรือน้อยกว่า, ตัวอักษร 'x' เพื่อที่จะ ทำให้เป็นจริง ก่อนตัวเลข 3 สามารถไม่ระบุตัวเลข แต่ใส่ เพียงเครื่องหมายจุลภาค:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

ผลลัพธ์ของการรันโค้ด:

python'! ! ! !'

ตัวอย่าง

ศูนย์ก่อน 3 ก็เป็นที่อนุญาตเช่นกัน:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

ผลลัพธ์ของการรันโค้ด:

python'! ! ! !'

โจทย์ปัญหาปฏิบัติ

Задание 1

กำหนดสตริง:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

เขียนนิพจน์ทั่วไปที่ค้นหาสตริง 'abba', 'abbba', 'abbbba' และเฉพาะพวกมันเท่านั้น

Задание 2

กำหนดสตริง:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

เขียนนิพจน์ทั่วไปที่ค้นหาสตริง รูปแบบ 'aba' ซึ่ง 'b' ปรากฏน้อยกว่า 3 ครั้ง (รวม)

Задание 3

กำหนดสตริง:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

เขียนนิพจน์ทั่วไปที่ค้นหาสตริง รูปแบบ 'aba' ซึ่ง 'b' ปรากฏมากกว่า 4 ครั้ง (รวม)