ตัวทดสอบรูปแบบ Regex
ผลลัพธ์การจับคู่
ป้อนรูปแบบและข้อความทดสอบเพื่อดูผลลัพธ์
บันทึกรูปแบบ
ผลลัพธ์การจับคู่
ป้อนรูปแบบและข้อความทดสอบเพื่อดูผลลัพธ์
รูปแบบที่บันทึกไว้
ยังไม่มีรูปแบบที่บันทึกไว้
คู่มือสัญลักษณ์ Regex
.
ตรงกับอักขระใด ๆ ยกเว้นการขึ้นบรรทัดใหม่\d
ตรงกับตัวเลขใด ๆ (0-9)\D
ตรงกับอักขระที่ไม่ใช่ตัวเลข\w
ตรงกับอักขระคำใด ๆ (a-z, A-Z, 0-9, _)\W
ตรงกับอักขระที่ไม่ใช่คำ\s
ตรงกับอักขระช่องว่างใด ๆ\S
ตรงกับอักขระที่ไม่ใช่ช่องว่าง^
ตรงกับจุดเริ่มต้นของบรรทัด$
ตรงกับจุดสิ้นสุดของบรรทัด*
ตรงกับ 0 หรือมากกว่าของอักขระก่อนหน้า+
ตรงกับ 1 หรือมากกว่าของอักขระก่อนหน้า?
ตรงกับ 0 หรือ 1 ของอักขระก่อนหน้า{n}
ตรงกับ n ของอักขระก่อนหน้า{n,}
ตรงกับอย่างน้อย n ของอักขระก่อนหน้า{n,m}
ตรงกับระหว่าง n และ m ของอักขระก่อนหน้า[abc]
ตรงกับอักขระใด ๆ ในวงเล็บ[^abc]
ตรงกับอักขระใด ๆ ที่ไม่อยู่ในวงเล็บ(abc)
รวมกลุ่มหลายโทเคนเข้าด้วยกันและจับคู่a|b
ตรงกับ a หรือ b\b
ตรงกับตำแหน่งขอบเขตของคำRegex Pattern Tester และ Validator
บทนำ
เครื่องมือทดสอบรูปแบบ Regular Expression (regex) เป็นเครื่องมือที่จำเป็นสำหรับนักพัฒนา นักวิเคราะห์ข้อมูล และผู้ที่ทำงานกับการประมวลผลข้อความ เครื่องมือการตรวจสอบรูปแบบ regex ที่ครอบคลุมนี้ช่วยให้คุณสร้าง ทดสอบ และปรับแต่ง regular expressions แบบเรียลไทม์ โดยให้ข้อเสนอแนะแบบภาพทันทีเกี่ยวกับการจับคู่รูปแบบ ไม่ว่าคุณจะกำลังตรวจสอบที่อยู่อีเมล แยกไฟล์บันทึก หรือดึงข้อมูลเฉพาะจากข้อความ เครื่องมือทดสอบ regex ของเราช่วยให้กระบวนการพัฒนาและการแก้ไขข้อผิดพลาดรวดเร็วและเข้าใจง่ายยิ่งขึ้น
Regular expressions เป็นลำดับการจับคู่รูปแบบที่ทรงพลังซึ่งช่วยให้สามารถค้นหา การตรวจสอบ และการจัดการข้อความได้อย่างซับซ้อน อย่างไรก็ตาม ไวยากรณ์ของพวกมันอาจซับซ้อนและยากที่จะเข้าใจ เครื่องมือทดสอบรูปแบบ regex นี้ทำให้กระบวนการง่ายขึ้นโดยการเน้นการจับคู่ขณะที่คุณพิมพ์ ตรวจสอบไวยากรณ์ของรูปแบบ และอนุญาตให้คุณบันทึกรูปแบบที่ใช้บ่อยสำหรับการอ้างอิงในอนาคต
วิธีการใช้เครื่องมือทดสอบรูปแบบ Regex
การใช้เครื่องมือการตรวจสอบรูปแบบ regex ของเราเป็นเรื่องง่ายและเข้าใจได้ง่าย ทำตามขั้นตอนเหล่านี้เพื่อเริ่มต้น:
-
ป้อนรูปแบบ Regular Expression: พิมพ์รูปแบบ regex ของคุณในช่องป้อนข้อมูลที่กำหนด เครื่องมือจะตรวจสอบรูปแบบของคุณแบบเรียลไทม์ โดยแจ้งให้คุณทราบถึงข้อผิดพลาดในไวยากรณ์ใดๆ
-
เลือกธง Regex: เลือกธงที่เหมาะสมสำหรับรูปแบบของคุณ:
g
(Global): ค้นหาทุกการจับคู่แทนที่จะหยุดหลังจากการจับคู่ครั้งแรกi
(Case Insensitive): ทำให้รูปแบบไม่คำนึงถึงตัวพิมพ์ใหญ่m
(Multiline): ทำให้^
และ$
จับคู่กับจุดเริ่มต้น/จุดสิ้นสุดของแต่ละบรรทัด- การรวมกันต่างๆ ของธงเหล่านี้มีให้ในรายการแบบดรอปดาวน์
-
ป้อนข้อความทดสอบ: ป้อนข้อความที่คุณต้องการทดสอบกับรูปแบบของคุณในพื้นที่ข้อความทดสอบ
-
ดูผลลัพธ์แบบเรียลไทม์: ขณะที่คุณพิมพ์ เครื่องมือจะทำการ:
- เน้นการจับคู่รูปแบบทั้งหมดในข้อความทดสอบ
- แสดงจำนวนการจับคู่ทั้งหมดที่พบ
- ระบุว่ารูปแบบตรงกับข้อความทั้งหมดหรือไม่
-
บันทึกรูปแบบที่มีประโยชน์: สำหรับรูปแบบที่คุณใช้บ่อย:
- ป้อนป้ายกำกับที่อธิบายสำหรับรูปแบบของคุณ
- คลิกที่ปุ่ม "บันทึก"
- เข้าถึงรูปแบบที่บันทึกไว้จากส่วน "รูปแบบที่บันทึกไว้"
-
คัดลอกผลลัพธ์: ใช้ปุ่ม "คัดลอกการจับคู่" เพื่อคัดลอกข้อความที่ตรงกันทั้งหมดไปยังคลิปบอร์ดของคุณเพื่อใช้ในแอปพลิเคชันอื่น
อินเทอร์เฟซแบ่งออกเป็นสองแผงหลัก: แผงป้อนข้อมูลที่คุณป้อนรูปแบบและข้อความทดสอบ และแผงผลลัพธ์ที่แสดงการจับคู่และข้อมูลเกี่ยวกับรูปแบบ
พื้นฐานของ Regular Expression
Regular expressions ใช้ตัวอักษรพิเศษและลำดับเพื่อกำหนดรูปแบบการค้นหา นี่คือคู่มือเกี่ยวกับสัญลักษณ์ regex พื้นฐานที่รองรับโดยเครื่องมือของเรา:
การจับคู่ตัวอักษร
สัญลักษณ์ | คำอธิบาย | ตัวอย่าง | จับคู่ |
---|---|---|---|
. | จับคู่กับตัวอักษรใดๆ ยกเว้นการขึ้นบรรทัดใหม่ | a.c | "abc", "adc", "a1c", ฯลฯ |
\d | จับคู่กับตัวเลขใดๆ (0-9) | \d{3} | "123", "456", "789", ฯลฯ |
\D | จับคู่กับตัวอักษรที่ไม่ใช่ตัวเลข | \D+ | "abc", "xyz", ฯลฯ |
\w | จับคู่กับตัวอักษรที่เป็นคำใดๆ (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123", ฯลฯ |
\W | จับคู่กับตัวอักษรที่ไม่ใช่คำ | \W+ | "!@#", " + ", ฯลฯ |
\s | จับคู่กับตัวอักษรช่องว่างใดๆ | a\sb | "a b", "a\tb", ฯลฯ |
\S | จับคู่กับตัวอักษรที่ไม่ใช่ช่องว่าง | \S+ | "abc", "123", ฯลฯ |
ตำแหน่งของตัวชี้วัด
สัญลักษณ์ | คำอธิบาย | ตัวอย่าง | จับคู่ |
---|---|---|---|
^ | จับคู่กับจุดเริ่มต้นของบรรทัด | ^abc | "abc" ที่จุดเริ่มต้นของบรรทัด |
$ | จับคู่กับจุดสิ้นสุดของบรรทัด | abc$ | "abc" ที่จุดสิ้นสุดของบรรทัด |
\b | จับคู่กับขอบเขตของคำ | \bword\b | "word" เป็นคำที่สมบูรณ์ |
ตัวกำหนดจำนวน
สัญลักษณ์ | คำอธิบาย | ตัวอย่าง | จับคู่ |
---|---|---|---|
* | จับคู่กับ 0 หรือมากกว่าของตัวอักษรก่อนหน้า | a*b | "b", "ab", "aab", ฯลฯ |
+ | จับคู่กับ 1 หรือมากกว่าของตัวอักษรก่อนหน้า | a+b | "ab", "aab", "aaab", ฯลฯ |
? | จับคู่กับ 0 หรือ 1 ของตัวอักษรก่อนหน้า | colou?r | "color", "colour" |
{n} | จับคู่กับตัวอักษรที่แน่นอน n ตัว | a{3} | "aaa" |
{n,} | จับคู่กับอย่างน้อย n ของตัวอักษรก่อนหน้า | a{2,} | "aa", "aaa", "aaaa", ฯลฯ |
{n,m} | จับคู่กับระหว่าง n และ m ของตัวอักษรก่อนหน้า | a{2,4} | "aa", "aaa", "aaaa" |
คลาสตัวอักษร
สัญลักษณ์ | คำอธิบาย | ตัวอย่าง | จับคู่ |
---|---|---|---|
[abc] | จับคู่กับตัวอักษรใดๆ หนึ่งตัวในวงเล็บ | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | จับคู่กับตัวอักษรใดๆ ที่ไม่อยู่ในวงเล็บ | [^aeiou] | ตัวอักษรใดๆ ยกเว้น "a", "e", "i", "o", "u" |
[a-z] | จับคู่กับตัวอักษรใดๆ ในช่วง | [a-z] | ตัวอักษรตัวพิมพ์เล็กใดๆ |
การจัดกลุ่มและการเลือก
สัญลักษณ์ | คำอธิบาย | ตัวอย่าง | จับคู่ |
---|---|---|---|
(abc) | จัดกลุ่มโทเค็นหลายตัวเข้าด้วยกันและจับคู่ | (abc)+ | "abc", "abcabc", ฯลฯ |
a|b | จับคู่กับ a หรือ b | cat|dog | "cat", "dog" |
รูปแบบ Regex ขั้นสูง
เมื่อคุณเชี่ยวชาญพื้นฐานแล้ว คุณสามารถสร้างรูปแบบที่ซับซ้อนมากขึ้นเพื่อแก้ปัญหาการประมวลผลข้อความที่ซับซ้อนได้:
การตรวจสอบที่อยู่อีเมล
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
รูปแบบนี้ตรวจสอบที่อยู่อีเมลโดยตรวจสอบให้แน่ใจว่าตรงตามรูปแบบมาตรฐาน: username@domain.tld
การตรวจสอบ URL
^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
รูปแบบนี้ตรวจสอบ URL รวมถึงที่มีหรือไม่มีโปรโตคอล http/https
การตรวจสอบหมายเลขโทรศัพท์ (รูปแบบสหรัฐอเมริกา)
^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
รูปแบบนี้จับคู่หมายเลขโทรศัพท์ของสหรัฐอเมริกาในรูปแบบต่างๆ: (123) 456-7890, 123-456-7890, หรือ 1234567890
การตรวจสอบวันที่ (YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
รูปแบบนี้ตรวจสอบวันที่ในรูปแบบ YYYY-MM-DD โดยมีการตรวจสอบพื้นฐานสำหรับช่วงเดือนและวัน
Lookahead และ Lookbehind
การยืนยัน Lookahead และ Lookbehind ช่วยให้คุณสามารถจับคู่รูปแบบเฉพาะเมื่อมีการตามหรือมีการนำหน้าด้วยรูปแบบอื่น:
- Positive lookahead:
a(?=b)
จับคู่ "a" เฉพาะเมื่อมีการตามด้วย "b" - Negative lookahead:
a(?!b)
จับคู่ "a" เฉพาะเมื่อไม่มีการตามด้วย "b" - Positive lookbehind:
(?<=a)b
จับคู่ "b" เฉพาะเมื่อมีการนำหน้าด้วย "a" - Negative lookbehind:
(?<!a)b
จับคู่ "b" เฉพาะเมื่อไม่มีการนำหน้าด้วย "a"
การทำงานกับธง Regex
เครื่องมือทดสอบ regex ของเรารองรับธงต่างๆ ที่ปรับเปลี่ยนวิธีการจับคู่รูปแบบ:
- g (Global): ค้นหาทุกการจับคู่แทนที่จะหยุดหลังจากการจับคู่ครั้งแรก
- i (Case Insensitive): ทำให้รูปแบบไม่คำนึงถึงตัวพิมพ์ใหญ่
- m (Multiline): ทำให้
^
และ$
จับคู่กับจุดเริ่มต้น/จุดสิ้นสุดของแต่ละบรรทัด - การรวมกัน: คุณสามารถรวมธงเพื่อความต้องการการจับคู่ที่ซับซ้อนมากขึ้น
กรณีการใช้งานสำหรับการทดสอบรูปแบบ Regex
Regular expressions มีการใช้งานที่หลากหลายในหลายสาขา:
การพัฒนาเว็บ
-
การตรวจสอบฟอร์ม: ตรวจสอบให้แน่ใจว่าข้อมูลที่ผู้ใช้ป้อนตรงตามรูปแบบที่ต้องการ:
- ที่อยู่อีเมล:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- รหัสผ่าน (พร้อมข้อกำหนดความซับซ้อน):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
- URL:
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
- ที่อยู่อีเมล:
-
การแยก HTML: ดึงข้อมูลองค์ประกอบหรือแอตทริบิวต์เฉพาะ:
- ค้นหาทุกแท็กภาพ:
<img[^>]+src="([^">]+)"
- ดึงลิงก์:
<a[^>]+href="([^">]+)"
- ค้นหาทุกแท็กภาพ:
การประมวลผลข้อมูล
-
การวิเคราะห์ไฟล์บันทึก: ดึงข้อมูลจากรายการบันทึก:
- ที่อยู่ IP:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- แทมสตัมพ์:
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
- ข้อความผิดพลาด:
ERROR: .*
- ที่อยู่ IP:
-
การแยก CSV: ประมวลผลค่าที่แยกด้วยเครื่องหมายจุลภาคที่มีฟิลด์ที่อาจถูกอ้างอิง:
- ตัวจับคู่ฟิลด์ CSV:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
- ตัวจับคู่ฟิลด์ CSV:
การประมวลผลข้อความ
-
ค้นหาและแทนที่: ระบุรูปแบบสำหรับการแทนที่:
- ลบแท็ก HTML:
<[^>]*>
- ฟอร์แมตหมายเลขโทรศัพท์:
(\d{3})(\d{3})(\d{4})
→($1) $2-$3
- ลบแท็ก HTML:
-
การดึงข้อมูล: ดึงข้อมูลเฉพาะจากข้อความที่ไม่มีโครงสร้าง:
- ดึงวันที่:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
- ค้นหาค่าทางการเงิน:
\$\d+(?:\.\d{2})?
- ดึงวันที่:
การเขียนโปรแกรมและการเขียนโค้ด
-
การเน้นไวยากรณ์: ระบุโครงสร้างของภาษา:
- ตัวแปร JavaScript:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
- การกำหนดฟังก์ชัน:
function\s+([a-zA-Z_$][\w$]*)\s*\(
- ตัวแปร JavaScript:
-
การปรับโค้ด: ค้นหารูปแบบที่ต้องการการอัปเดต:
- การเรียก API ที่ล้าสมัย:
\.oldMethod\(
- ฟังก์ชันที่ไม่ปลอดภัย:
eval\(
- การเรียก API ที่ล้าสมัย:
การบันทึกและจัดการรูปแบบ
เครื่องมือทดสอบรูปแบบ regex ของเรามีระบบการจัดการรูปแบบที่ช่วยให้คุณบันทึกและใช้ซ้ำการแสดงออกที่คุณใช้บ่อย:
เมื่อใดควรบันทึกรูปแบบ
พิจารณาบันทึกรูปแบบที่:
- คุณใช้บ่อยในโครงการต่างๆ
- มีความซับซ้อนและยากที่จะจดจำ
- ใช้สำหรับการตรวจสอบเฉพาะในงานของคุณ
- คุณได้ปรับแต่งหลังจากหลายครั้ง
แนวทางปฏิบัติที่ดีที่สุดสำหรับป้ายกำกับรูปแบบ
เมื่อบันทึกรูปแบบ ใช้ป้ายกำกับที่อธิบายซึ่ง:
- ระบุวัตถุประสงค์ของรูปแบบ (เช่น "ตัวตรวจสอบอีเมล")
- กล่าวถึงรูปแบบเฉพาะ (เช่น "หมายเลขโทรศัพท์สหรัฐอเมริกา")
- รวมข้อมูลเวอร์ชันหากคุณปรับปรุงรูปแบบ (เช่น "ตัวตรวจสอบ URL v2")
- กระชับแต่ให้ข้อมูล
การจัดระเบียบรูปแบบ
จัดระเบียบรูปแบบที่บันทึกไว้ของคุณตาม:
- ฟังก์ชัน (การตรวจสอบ การดึงข้อมูล การแทนที่)
- โดเมน (การพัฒนาเว็บ การประมวลผลข้อมูล)
- ความซับซ้อน (พื้นฐาน ขั้นสูง)
- ความถี่ในการใช้
การแชร์รูปแบบ
ในขณะที่เครื่องมือของเราไม่รองรับการแชร์รูปแบบระหว่างผู้ใช้โดยตรง คุณสามารถ:
- คัดลอกรูปแบบเพื่อแชร์กับเพื่อนร่วมงาน
- เอกสารรูปแบบของคุณในที่เก็บข้อมูลร่วมกัน
- รวมคำอธิบายรูปแบบในเอกสารโครงการ
การแก้ไขปัญหาข้อผิดพลาดทั่วไปของ Regex
แม้แต่นักพัฒนาที่มีประสบการณ์ก็พบกับความท้าทายในการใช้ regular expressions ต่อไปนี้คือวิธีแก้ไขปัญหาทั่วไป:
ข้อผิดพลาดในไวยากรณ์
หากรูปแบบของคุณแสดงข้อผิดพลาดในการตรวจสอบ:
- ตรวจสอบการปิดวงเล็บ วงเล็บ หรือวงเล็บที่ไม่ตรงกัน
- ตรวจสอบให้แน่ใจว่าตัวอักษรพิเศษถูกหนีด้วยแบ็คสแลช
- ตรวจสอบให้แน่ใจว่าตัวกำหนดจำนวนมีตัวอักษรหรือกลุ่มก่อนหน้า
- มองหาความไม่ถูกต้องในไวยากรณ์ของคลาสตัวอักษร
ปัญหาด้านประสิทธิภาพ
หาก regex ของคุณช้า หรือทำให้เบราว์เซอร์ช้า:
- หลีกเลี่ยงการใช้ตัวกำหนดจำนวนซ้อนกันมากเกินไป (เช่น
(a+)+
) - ระมัดระวังการใช้ lookaheads และ lookbehinds ในข้อความขนาดใหญ่
- พิจารณาใช้รูปแบบที่เฉพาะเจาะจงมากขึ้นแทนที่จะกว้างเกินไป
- แยกรูปแบบที่ซับซ้อนออกเป็นส่วนเล็กๆ ที่จัดการได้มากขึ้น
การจับคู่ที่ไม่คาดคิด
หากรูปแบบของคุณจับคู่ข้อความที่ไม่ต้องการ:
- ใช้ตัวชี้วัด (
^
และ$
) เพื่อจับคู่กับสตริงทั้งหมด - ทำให้คลาสตัวอักษรเฉพาะเจาะจงมากขึ้น
- เพิ่มขอบเขตของคำ (
\b
) เมื่อเหมาะสม - ใช้ negative lookaheads เพื่อไม่ให้รวมรูปแบบบางอย่าง
ไม่พบการจับคู่
หากรูปแบบของคุณไม่ตรงกับข้อความที่คาดไว้:
- ตรวจสอบปัญหาความไวต่อการใช้ตัวพิมพ์ใหญ่ (พิจารณาใช้ธง
i
) - ตรวจสอบให้แน่ใจว่าตัวอักษรพิเศษถูกหนีอย่างถูกต้อง
- ทดสอบรูปแบบของคุณกับตัวอย่างที่เรียบง่ายก่อน
- ตรวจสอบให้แน่ใจว่าคุณใช้คลาสตัวอักษรที่ถูกต้อง
ทางเลือกสำหรับ Regular Expressions
แม้ว่า regex จะทรงพลัง แต่ก็ไม่ใช่โซลูชันที่ดีที่สุดสำหรับทุกงานการประมวลผลข้อความ:
วิธีการจัดการสตริง
สำหรับการดำเนินการข้อความที่ง่าย วิธีการจัดการสตริงในตัวมักจะชัดเจนและมีประสิทธิภาพมากกว่า:
String.indexOf()
สำหรับการค้นหาสตริงย่อยString.startsWith()
และString.endsWith()
สำหรับการตรวจสอบขอบเขตของสตริงString.split()
สำหรับการแบ่งข้อความพื้นฐาน
ตัวแยกเฉพาะ
สำหรับรูปแบบข้อมูลที่มีโครงสร้าง ตัวแยกเฉพาะจะมีความแข็งแกร่งมากกว่า:
- ตัวแยก JSON สำหรับข้อมูล JSON
- ตัวแยก XML/HTML สำหรับภาษามาร์กอัป
- ตัวแยก CSV สำหรับข้อมูลแบบตาราง
การประมวลผลภาษาธรรมชาติ (NLP)
สำหรับการเข้าใจความหมายของข้อความแทนที่จะเป็นแค่รูปแบบ:
- เครื่องมือการวิเคราะห์อารมณ์
- การรับรู้เอนทิตีที่ตั้งชื่อ
- การติดป้ายส่วนของคำ
เมื่อใดควรเลือกทางเลือก
พิจารณาทางเลือกแทน regex เมื่อ:
- โครงสร้างข้อความมีความสม่ำเสมอและเรียบง่ายมาก
- รูปแบบมีตัวแยกที่มีมาตรฐานพร้อมใช้งาน
- คุณต้องเข้าใจความหมายเชิงพาณิชย์
- ประสิทธิภาพมีความสำคัญต่อข้อความขนาดใหญ่
คำถามที่พบบ่อย
Regular expression คืออะไร?
Regular expression (regex) คือ ลำดับของตัวอักษรที่กำหนดรูปแบบการค้นหา รูปแบบเหล่านี้สามารถใช้ในการค้นหา การจับคู่ และการดำเนินการจัดการข้อความ
ทำไมฉันต้องใช้เครื่องมือทดสอบรูปแบบ regex?
เครื่องมือทดสอบรูปแบบ regex ช่วยให้คุณพัฒนาและแก้ไข regular expressions โดยให้ข้อเสนอแนะแบบภาพทันทีเกี่ยวกับการจับคู่ ตรวจสอบไวยากรณ์ของรูปแบบ และอนุญาตให้คุณทดลองกับรูปแบบและธงต่างๆ โดยไม่ต้องนำไปใช้ในโค้ดก่อน
ฉันจะจับคู่กับตัวอักษรพิเศษที่เป็นลิตราเช่น จุดหรือดอกจันได้อย่างไร?
เพื่อจับคู่กับตัวอักษรพิเศษที่เป็นลิตรา ซึ่งโดยปกติจะมีความหมายพิเศษใน regex คุณต้องหนีด้วยแบ็คสแลช สำหรับตัวอย่างการจับคู่จุดลิตรา ใช้ \.
แทนที่จะใช้เพียงแค่ .
ความแตกต่างระหว่าง .*
และ .*?
ในรูปแบบ regex คืออะไร?
.*
เป็นตัวกำหนดจำนวนที่โลภซึ่งจับคู่กับตัวอักษรได้มากที่สุด ในขณะที่ .*?
เป็นตัวกำหนดจำนวนที่ไม่โลภ (lazy) ซึ่งจับคู่กับตัวอักษรน้อยที่สุด ความแตกต่างนี้มีความสำคัญเมื่อคุณต้องการหาการจับคู่ที่สั้นที่สุดแทนที่จะยาวที่สุด
ฉันสามารถใช้เครื่องมือนี้สำหรับรูปแบบในภาษาโปรแกรมใดก็ได้หรือไม่?
ในขณะที่ไวยากรณ์ regex หลักมีความคล้ายคลึงกันในหลายภาษา แต่ก็มีความแตกต่างเล็กน้อยในการใช้งาน เครื่องมือของเราใช้เครื่องหมาย regex ของ JavaScript ซึ่งเข้ากันได้กับหลายภาษาบนเว็บ แต่ก็อาจมีความแตกต่างจาก regex ในภาษาเช่น Python, Java หรือ Perl
ฉันจะตรวจสอบสตริงทั้งหมดด้วย regex ได้อย่างไร?
เพื่อให้แน่ใจว่าสตริงทั้งหมดตรงกับรูปแบบ ใช้ตัวชี้วัด ^
ที่ด้านหน้าและตัวชี้วัด $
ที่ด้านท้ายของ regex ของคุณ ตัวอย่างเช่น ^[0-9]+$
จะตรงกับสตริงที่ประกอบด้วยตัวเลขทั้งหมดเท่านั้น
กลุ่มการจับคู่คืออะไรและฉันจะใช้มันได้อย่างไร?
กลุ่มการจับคู่ซึ่งสร้างขึ้นด้วยวงเล็บ ()
ช่วยให้คุณดึงข้อมูลส่วนเฉพาะของข้อความที่ตรงกัน ในเครื่องมือของเรา คุณสามารถดูการจับคู่ทั้งหมดรวมถึงกลุ่มที่จับคู่ได้ ในภาษาโปรแกรม คุณมักจะสามารถเข้าถึงการจับคู่เหล่านี้ได้โดยการจัดทำดัชนีผลลัพธ์การจับคู่
ฉันจะทำให้รูปแบบ regex ของฉันมีประสิทธิภาพมากขึ้นได้อย่างไร?
เพื่อปรับปรุงประสิทธิภาพ regex: ระบุให้ชัดเจนด้วยคลาสตัวอักษร หลีกเลี่ยงการใช้กลุ่มการจับคู่ที่ไม่จำเป็น (ใช้กลุ่มที่ไม่จับคู่ (?:...)
เมื่อเป็นไปได้) จำกัดการใช้ lookaheads/lookbehinds และหลีกเลี่ยงรูปแบบที่ทำให้เกิดการย้อนกลับที่เลวร้ายเช่นตัวกำหนดจำนวนซ้อนกัน
ข้อผิดพลาด regex ที่พบบ่อยที่สุดที่ควรหลีกเลี่ยงคืออะไร?
ข้อผิดพลาดทั่วไป ได้แก่: ไม่หนีตัวอักษรพิเศษ สร้างรูปแบบที่โลภเกินไป ลืมที่จะยึดรูปแบบ (ด้วย ^
และ $
) และเขียนการแสดงออกที่ซับซ้อนเกินไปซึ่งยากต่อการบำรุงรักษา
regex สามารถจัดการกับโครงสร้างที่ซ้อนกันเช่น HTML ได้หรือไม่?
Regular expressions ไม่เหมาะสำหรับการแยกวิเคราะห์โครงสร้างที่ซ้อนกันเช่น HTML หรือ XML แม้ว่าคุณสามารถสร้างรูปแบบ regex สำหรับการจับคู่ HTML ที่ง่ายได้ แต่โดยทั่วไปแล้วจะดีกว่าที่จะใช้ตัวแยก HTML ที่เฉพาะเจาะจงสำหรับการประมวลผล HTML ที่ซับซ้อน
อ้างอิง
- Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.
- Goyvaerts, J., & Levithan, S. (2012). Regular Expressions Cookbook. O'Reilly Media.
- "Regular expression." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Regular_expression
- MDN Web Docs. "Regular Expressions." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
- RegExr: เรียนรู้ สร้าง และทดสอบ RegEx. https://regexr.com/
ลองใช้เครื่องมือทดสอบรูปแบบ regex ของเราวันนี้เพื่อทำให้การประมวลผลข้อความของคุณง่ายขึ้น ตรวจสอบรูปแบบข้อมูลนำเข้า และดึงข้อมูลที่มีความหมายจากข้อความที่ไม่มีโครงสร้าง ไม่ว่าคุณจะเป็นมือใหม่ที่เรียนรู้พื้นฐานของ regular expressions หรือเป็นนักพัฒนาที่มีประสบการณ์ที่ทำงานเกี่ยวกับการจับคู่รูปแบบที่ซับซ้อน เครื่องมือของเรามีฟีเจอร์ที่คุณต้องการเพื่อสร้าง ทดสอบ และปรับแต่งรูปแบบ regex ของคุณอย่างมีประสิทธิภาพ