ทดสอบนิพจน์ปกติด้วยการไฮไลท์การจับคู่แบบเรียลไทม์, การตรวจสอบรูปแบบ, และคำอธิบายของสัญลักษณ์ 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
ตรงกับตำแหน่งขอบเขตของคำเครื่องมือทดสอบรูปแบบ Regular Expression (regex) เป็นเครื่องมือที่จำเป็นสำหรับนักพัฒนา นักวิเคราะห์ข้อมูล และผู้ที่ทำงานกับการประมวลผลข้อความ เครื่องมือการตรวจสอบรูปแบบ regex ที่ครอบคลุมนี้ช่วยให้คุณสร้าง ทดสอบ และปรับแต่ง regular expressions แบบเรียลไทม์ โดยให้ข้อเสนอแนะแบบภาพทันทีเกี่ยวกับการจับคู่รูปแบบ ไม่ว่าคุณจะกำลังตรวจสอบที่อยู่อีเมล แยกไฟล์บันทึก หรือดึงข้อมูลเฉพาะจากข้อความ เครื่องมือทดสอบ regex ของเราช่วยให้กระบวนการพัฒนาและการแก้ไขข้อผิดพลาดรวดเร็วและเข้าใจง่ายยิ่งขึ้น
Regular expressions เป็นลำดับการจับคู่รูปแบบที่ทรงพลังซึ่งช่วยให้สามารถค้นหา การตรวจสอบ และการจัดการข้อความได้อย่างซับซ้อน อย่างไรก็ตาม ไวยากรณ์ของพวกมันอาจซับซ้อนและยากที่จะเข้าใจ เครื่องมือทดสอบรูปแบบ regex นี้ทำให้กระบวนการง่ายขึ้นโดยการเน้นการจับคู่ขณะที่คุณพิมพ์ ตรวจสอบไวยากรณ์ของรูปแบบ และอนุญาตให้คุณบันทึกรูปแบบที่ใช้บ่อยสำหรับการอ้างอิงในอนาคต
การใช้เครื่องมือการตรวจสอบรูปแบบ regex ของเราเป็นเรื่องง่ายและเข้าใจได้ง่าย ทำตามขั้นตอนเหล่านี้เพื่อเริ่มต้น:
ป้อนรูปแบบ Regular Expression: พิมพ์รูปแบบ regex ของคุณในช่องป้อนข้อมูลที่กำหนด เครื่องมือจะตรวจสอบรูปแบบของคุณแบบเรียลไทม์ โดยแจ้งให้คุณทราบถึงข้อผิดพลาดในไวยากรณ์ใดๆ
เลือกธง Regex: เลือกธงที่เหมาะสมสำหรับรูปแบบของคุณ:
g
(Global): ค้นหาทุกการจับคู่แทนที่จะหยุดหลังจากการจับคู่ครั้งแรกi
(Case Insensitive): ทำให้รูปแบบไม่คำนึงถึงตัวพิมพ์ใหญ่m
(Multiline): ทำให้ ^
และ $
จับคู่กับจุดเริ่มต้น/จุดสิ้นสุดของแต่ละบรรทัดป้อนข้อความทดสอบ: ป้อนข้อความที่คุณต้องการทดสอบกับรูปแบบของคุณในพื้นที่ข้อความทดสอบ
ดูผลลัพธ์แบบเรียลไทม์: ขณะที่คุณพิมพ์ เครื่องมือจะทำการ:
บันทึกรูปแบบที่มีประโยชน์: สำหรับรูปแบบที่คุณใช้บ่อย:
คัดลอกผลลัพธ์: ใช้ปุ่ม "คัดลอกการจับคู่" เพื่อคัดลอกข้อความที่ตรงกันทั้งหมดไปยังคลิปบอร์ดของคุณเพื่อใช้ในแอปพลิเคชันอื่น
อินเทอร์เฟซแบ่งออกเป็นสองแผงหลัก: แผงป้อนข้อมูลที่คุณป้อนรูปแบบและข้อความทดสอบ และแผงผลลัพธ์ที่แสดงการจับคู่และข้อมูลเกี่ยวกับรูปแบบ
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" |
เมื่อคุณเชี่ยวชาญพื้นฐานแล้ว คุณสามารถสร้างรูปแบบที่ซับซ้อนมากขึ้นเพื่อแก้ปัญหาการประมวลผลข้อความที่ซับซ้อนได้:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
รูปแบบนี้ตรวจสอบที่อยู่อีเมลโดยตรวจสอบให้แน่ใจว่าตรงตามรูปแบบมาตรฐาน: username@domain.tld
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
รูปแบบนี้ตรวจสอบ URL รวมถึงที่มีหรือไม่มีโปรโตคอล http/https
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
รูปแบบนี้จับคู่หมายเลขโทรศัพท์ของสหรัฐอเมริกาในรูปแบบต่างๆ: (123) 456-7890, 123-456-7890, หรือ 1234567890
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
รูปแบบนี้ตรวจสอบวันที่ในรูปแบบ YYYY-MM-DD โดยมีการตรวจสอบพื้นฐานสำหรับช่วงเดือนและวัน
การยืนยัน Lookahead และ Lookbehind ช่วยให้คุณสามารถจับคู่รูปแบบเฉพาะเมื่อมีการตามหรือมีการนำหน้าด้วยรูปแบบอื่น:
a(?=b)
จับคู่ "a" เฉพาะเมื่อมีการตามด้วย "b"a(?!b)
จับคู่ "a" เฉพาะเมื่อไม่มีการตามด้วย "b"(?<=a)b
จับคู่ "b" เฉพาะเมื่อมีการนำหน้าด้วย "a"(?<!a)b
จับคู่ "b" เฉพาะเมื่อไม่มีการนำหน้าด้วย "a"เครื่องมือทดสอบ regex ของเรารองรับธงต่างๆ ที่ปรับเปลี่ยนวิธีการจับคู่รูปแบบ:
^
และ $
จับคู่กับจุดเริ่มต้น/จุดสิ้นสุดของแต่ละบรรทัดRegular expressions มีการใช้งานที่หลากหลายในหลายสาขา:
การตรวจสอบฟอร์ม: ตรวจสอบให้แน่ใจว่าข้อมูลที่ผู้ใช้ป้อนตรงตามรูปแบบที่ต้องการ:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
การแยก HTML: ดึงข้อมูลองค์ประกอบหรือแอตทริบิวต์เฉพาะ:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
การวิเคราะห์ไฟล์บันทึก: ดึงข้อมูลจากรายการบันทึก:
\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: .*
การแยก CSV: ประมวลผลค่าที่แยกด้วยเครื่องหมายจุลภาคที่มีฟิลด์ที่อาจถูกอ้างอิง:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
ค้นหาและแทนที่: ระบุรูปแบบสำหรับการแทนที่:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
การดึงข้อมูล: ดึงข้อมูลเฉพาะจากข้อความที่ไม่มีโครงสร้าง:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
การเน้นไวยากรณ์: ระบุโครงสร้างของภาษา:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
การปรับโค้ด: ค้นหารูปแบบที่ต้องการการอัปเดต:
\.oldMethod\(
eval\(
เครื่องมือทดสอบรูปแบบ regex ของเรามีระบบการจัดการรูปแบบที่ช่วยให้คุณบันทึกและใช้ซ้ำการแสดงออกที่คุณใช้บ่อย:
พิจารณาบันทึกรูปแบบที่:
เมื่อบันทึกรูปแบบ ใช้ป้ายกำกับที่อธิบายซึ่ง:
จัดระเบียบรูปแบบที่บันทึกไว้ของคุณตาม:
ในขณะที่เครื่องมือของเราไม่รองรับการแชร์รูปแบบระหว่างผู้ใช้โดยตรง คุณสามารถ:
แม้แต่นักพัฒนาที่มีประสบการณ์ก็พบกับความท้าทายในการใช้ regular expressions ต่อไปนี้คือวิธีแก้ไขปัญหาทั่วไป:
หากรูปแบบของคุณแสดงข้อผิดพลาดในการตรวจสอบ:
หาก regex ของคุณช้า หรือทำให้เบราว์เซอร์ช้า:
(a+)+
)หากรูปแบบของคุณจับคู่ข้อความที่ไม่ต้องการ:
^
และ $
) เพื่อจับคู่กับสตริงทั้งหมด\b
) เมื่อเหมาะสมหากรูปแบบของคุณไม่ตรงกับข้อความที่คาดไว้:
i
)แม้ว่า regex จะทรงพลัง แต่ก็ไม่ใช่โซลูชันที่ดีที่สุดสำหรับทุกงานการประมวลผลข้อความ:
สำหรับการดำเนินการข้อความที่ง่าย วิธีการจัดการสตริงในตัวมักจะชัดเจนและมีประสิทธิภาพมากกว่า:
String.indexOf()
สำหรับการค้นหาสตริงย่อยString.startsWith()
และ String.endsWith()
สำหรับการตรวจสอบขอบเขตของสตริงString.split()
สำหรับการแบ่งข้อความพื้นฐานสำหรับรูปแบบข้อมูลที่มีโครงสร้าง ตัวแยกเฉพาะจะมีความแข็งแกร่งมากกว่า:
สำหรับการเข้าใจความหมายของข้อความแทนที่จะเป็นแค่รูปแบบ:
พิจารณาทางเลือกแทน regex เมื่อ:
Regular expression (regex) คือ ลำดับของตัวอักษรที่กำหนดรูปแบบการค้นหา รูปแบบเหล่านี้สามารถใช้ในการค้นหา การจับคู่ และการดำเนินการจัดการข้อความ
เครื่องมือทดสอบรูปแบบ regex ช่วยให้คุณพัฒนาและแก้ไข regular expressions โดยให้ข้อเสนอแนะแบบภาพทันทีเกี่ยวกับการจับคู่ ตรวจสอบไวยากรณ์ของรูปแบบ และอนุญาตให้คุณทดลองกับรูปแบบและธงต่างๆ โดยไม่ต้องนำไปใช้ในโค้ดก่อน
เพื่อจับคู่กับตัวอักษรพิเศษที่เป็นลิตรา ซึ่งโดยปกติจะมีความหมายพิเศษใน regex คุณต้องหนีด้วยแบ็คสแลช สำหรับตัวอย่างการจับคู่จุดลิตรา ใช้ \.
แทนที่จะใช้เพียงแค่ .
.*
และ .*?
ในรูปแบบ regex คืออะไร?.*
เป็นตัวกำหนดจำนวนที่โลภซึ่งจับคู่กับตัวอักษรได้มากที่สุด ในขณะที่ .*?
เป็นตัวกำหนดจำนวนที่ไม่โลภ (lazy) ซึ่งจับคู่กับตัวอักษรน้อยที่สุด ความแตกต่างนี้มีความสำคัญเมื่อคุณต้องการหาการจับคู่ที่สั้นที่สุดแทนที่จะยาวที่สุด
ในขณะที่ไวยากรณ์ regex หลักมีความคล้ายคลึงกันในหลายภาษา แต่ก็มีความแตกต่างเล็กน้อยในการใช้งาน เครื่องมือของเราใช้เครื่องหมาย regex ของ JavaScript ซึ่งเข้ากันได้กับหลายภาษาบนเว็บ แต่ก็อาจมีความแตกต่างจาก regex ในภาษาเช่น Python, Java หรือ Perl
เพื่อให้แน่ใจว่าสตริงทั้งหมดตรงกับรูปแบบ ใช้ตัวชี้วัด ^
ที่ด้านหน้าและตัวชี้วัด $
ที่ด้านท้ายของ regex ของคุณ ตัวอย่างเช่น ^[0-9]+$
จะตรงกับสตริงที่ประกอบด้วยตัวเลขทั้งหมดเท่านั้น
กลุ่มการจับคู่ซึ่งสร้างขึ้นด้วยวงเล็บ ()
ช่วยให้คุณดึงข้อมูลส่วนเฉพาะของข้อความที่ตรงกัน ในเครื่องมือของเรา คุณสามารถดูการจับคู่ทั้งหมดรวมถึงกลุ่มที่จับคู่ได้ ในภาษาโปรแกรม คุณมักจะสามารถเข้าถึงการจับคู่เหล่านี้ได้โดยการจัดทำดัชนีผลลัพธ์การจับคู่
เพื่อปรับปรุงประสิทธิภาพ regex: ระบุให้ชัดเจนด้วยคลาสตัวอักษร หลีกเลี่ยงการใช้กลุ่มการจับคู่ที่ไม่จำเป็น (ใช้กลุ่มที่ไม่จับคู่ (?:...)
เมื่อเป็นไปได้) จำกัดการใช้ lookaheads/lookbehinds และหลีกเลี่ยงรูปแบบที่ทำให้เกิดการย้อนกลับที่เลวร้ายเช่นตัวกำหนดจำนวนซ้อนกัน
ข้อผิดพลาดทั่วไป ได้แก่: ไม่หนีตัวอักษรพิเศษ สร้างรูปแบบที่โลภเกินไป ลืมที่จะยึดรูปแบบ (ด้วย ^
และ $
) และเขียนการแสดงออกที่ซับซ้อนเกินไปซึ่งยากต่อการบำรุงรักษา
Regular expressions ไม่เหมาะสำหรับการแยกวิเคราะห์โครงสร้างที่ซ้อนกันเช่น HTML หรือ XML แม้ว่าคุณสามารถสร้างรูปแบบ regex สำหรับการจับคู่ HTML ที่ง่ายได้ แต่โดยทั่วไปแล้วจะดีกว่าที่จะใช้ตัวแยก HTML ที่เฉพาะเจาะจงสำหรับการประมวลผล HTML ที่ซับซ้อน
ลองใช้เครื่องมือทดสอบรูปแบบ regex ของเราวันนี้เพื่อทำให้การประมวลผลข้อความของคุณง่ายขึ้น ตรวจสอบรูปแบบข้อมูลนำเข้า และดึงข้อมูลที่มีความหมายจากข้อความที่ไม่มีโครงสร้าง ไม่ว่าคุณจะเป็นมือใหม่ที่เรียนรู้พื้นฐานของ regular expressions หรือเป็นนักพัฒนาที่มีประสบการณ์ที่ทำงานเกี่ยวกับการจับคู่รูปแบบที่ซับซ้อน เครื่องมือของเรามีฟีเจอร์ที่คุณต้องการเพื่อสร้าง ทดสอบ และปรับแต่งรูปแบบ regex ของคุณอย่างมีประสิทธิภาพ
ค้นพบเครื่องมือเพิ่มเติมที่อาจมีประโยชน์สำหรับการทำงานของคุณ