logo
GeekFormat

เครื่องมือทดสอบ Regex

Regex Tester
//
无匹配
Worker · 500ms 超时中断
分类模板库
点选即可填充 pattern / flags / demo
测试文本37
匹配详情
0

还没有匹配结果

输入正则与文本后,这里会展示每个匹配、捕获组和命名分组。

匹配高亮预览· Hover / 点击右侧条目联动
Ada Lovelace Alan Turing Grace Hopper

统计

匹配数量
0
执行耗时
0ms
捕获组
0
命名分组
0

命名分组汇总

当前没有命名分组。

เครื่องมือทดสอบ Regular Expression (Regex Tester) ออนไลน์ฟรี รองรับการทดสอบจับคู่เรียลไทม์ JS ดูกลุ่มจับ/กลุ่มที่ตั้งชื่อ ดูตัวอย่างการแทนที่ คำอธิบายไวยากรณ์ regex มีการป้องกัน timeout ป้องกัน ReDoS ด้วย Web Worker มาพร้อมไลบรารีแม่แบบ regex ที่ใช้บ่อย เหมาะสำหรับนักพัฒนาในการดีบั๊กและตรวจสอบ regex อย่างรวดเร็ว

คำแนะนำที่เกี่ยวข้อง

กรณีการใช้งาน

  • ทดสอบออนไลน์ว่า regex อีเมล เบอร์มือถือ เลขบัตรประชาชน URL ถูกต้องหรือไม่เมื่อพัฒนากฎการตรวจสอบฟอร์ม
  • ใช้ regex แยกเวลา stamp ข้อความผิดพลาด ที่อยู่ IP ในบันทึกระดับ ERROR/INFO เมื่อวิเคราะห์ล็อก
  • ดูตัวอย่างผลการแทนที่ regex เมื่อทำความสะอาดข้อมูล/ETL เช่น การแปลงรูปแบบวันที่ การปกปิดข้อมูลที่ละเอียดอ่อน (ใส่ดอกจันตรงกลางเบอร์มือถือ)
  • ตรวจสอบว่า regex แยกเนื้อหาจับคู่กับส่วน HTML หรือฟิลด์ JSON เป้าหมายอย่างถูกต้องหรือไม่เมื่อเขียนโปรแกรมรวบรวมข้อมูลเว็บ
  • ทำความเข้าใจความหมายของอักขระเมตาและควอนติไฟเออร์แต่ละตัวผ่านแผง「คำอธิบาย」เมื่อเรียนรู้ Regular Expression ร่วมกับแม่แบบจะเชี่ยวชาญได้อย่างรวดเร็ว
  • ส่ง regex ที่น่าสงสัยให้เพื่อนร่วมงานผ่านลิงก์แชร์เมื่อ Code Review ร่วมกันดีบั๊กและปรับปรุง

คุณสมบัติ

  • ทำงานใน sandbox Web Worker: Regex รันในเธรด Worker แยกจากกัน timeout 500ms หยุดอัตโนมัติ ป้องกัน ReDoS ทำให้เบราว์เซอร์ค้างได้อย่างสมบูรณ์
  • จับคู่เรียลไทม์ + เน้นสี: ป้อนแล้วแสดงผลการจับคู่ทันที ผลลัพธ์ที่แตกต่างกันถูกเน้นด้วย 5 สี แยกแยะได้ชัดเจน hover เชื่อมโยงกับแผงรายละเอียด
  • กลุ่มจับ + กลุ่มที่ตั้งชื่อ: แต่ละผลการจับคู่จะขยายแสดงกลุ่มจับทั้งหมด($1/$2) และกลุ่มที่ตั้งชื่อ($<name>) โดยอัตโนมัติ พร้อมสรุปสถิติ
  • ดูตัวอย่างการแทนที่: ป้อนสตริงที่ใช้แทนที่เพื่อดูผลลัพธ์ล่วงหน้าแบบเรียลไทม์ รองรับปุ่มด่วนไวยากรณ์ $1/$&/$`/$'/$<name>
  • คำอธิบายไวยากรณ์ regex: วิเคราะห์ Regular Expression อัตโนมัติ อธิบายความหมายไวยากรณ์ของอักขระเมตา ควอนติไฟเออร์ กลุ่ม จุดยึด ตามแต่ละองค์ประกอบ
  • 12 แม่แบบที่ใช้บ่อย: มี 12 แม่แบบ regex ความถี่สูงในตัว เช่น อีเมล/URL/เบอร์มือถือ/จีน/IPv4/UUID/วันที่/ล็อก/แท็ก HTML ฯลฯ เติมได้ด้วยคลิกเดียว
  • สลับ 6 แฟล็ก: ปุ่มภาพสำหรับสลับแฟล็ก g/i/m/s/u/y ไม่ต้องจำไวยากรณ์
  • ลิงก์แชร์: คลิกเดียวสร้าง URL ที่มี pattern/flags/text คัดลอกให้เพื่อนร่วมงานเพื่อจำลองสถานการณ์ทดสอบโดยตรง
  • สถิติการทำงาน: แสดงจำนวนการจับคู่ เวลาที่ใช้(ms) จำนวนกลุ่มจับทั้งหมด จำนวนกลุ่มที่ตั้งชื่อ แบบเรียลไทม์
  • จำกัดการจับคู่ 1500 ครั้ง: ตัดอัตโนมัติเพื่อป้องกันข้อความยาวเกินไปทำให้หน้าเว็บช้า regex ผิดพลาดจะแสดงข้อความผิดพลาดไวยากรณ์ที่เป็นมิตร

วิธีการใช้งาน

  1. ป้อน Regular Expression ในช่องป้อนระหว่าง / / ด้านบน (ไม่ต้องใส่เครื่องหมายทับเอง) ป้อนแฟล็กทางด้านขวา (เช่น g、gi、gim) หรือคลิกปุ่มด้านล่างเพื่อสลับ
  2. วางหรือป้อนเนื้อหาข้อความที่ต้องการจับคู่ในพื้นที่「ข้อความทดสอบ」 ผลการจับคู่จะถูกเน้นสีแบบเรียลไทม์
  3. คลิกแผง「รายละเอียดการจับคู่」ทางด้านขวาเพื่อดูตำแหน่ง เนื้อหา กลุ่มจับและกลุ่มที่ตั้งชื่อของแต่ละผลการจับคู่
  4. สลับไปที่แท็บ「พื้นที่แทนที่」 ป้อนสตริงที่ใช้แทนที่ (รองรับการอ้างอิง $1/$&/$<name> ฯลฯ) ดูตัวอย่างผลการแทนที่แบบเรียลไทม์
  5. สลับไปที่แท็บ「คำอธิบายนิพจน์」 ดูคำอธิบายไวยากรณ์ regex ตามองค์ประกอบที่สร้างขึ้นโดยอัตโนมัติ
  6. เมื่อต้องการแม่แบบที่ใช้บ่อย คลิก「ไลบรารีแม่แบบตามหมวดหมู่」ทางด้านซ้ายเลือกแม่แบบที่ต้องการแล้วคลิกเพื่อเติม; หลังจากดีบั๊กเสร็จแล้วคลิก「แชร์」เพื่อสร้างลิงก์

คำถามที่พบบ่อย

ReDoS คืออะไร? เหตุใดการทดสอบ regex จึงต้องป้องกัน ReDoS?

ReDoS (Regular Expression Denial of Service - การโจมตีปฏิเสธบริการด้วย Regular Expression) คือเมื่อ Regular Expression บางตัวที่สร้างขึ้นอย่างมีเจตนาไม่ดี (เช่น `(a+)+$` เมื่อจับคู่กับสตริงยาว) จะกระตุ้นให้เกิดการย้อนกลับที่เป็นอันตราย (catastrophic backtracking) ทำให้ CPU ใช้งาน 100% เบราว์เซอร์ค้างหรือเซิร์ฟเวอร์ล่ม เครื่องมือนี้ใช้ Web Worker เพื่อรันการจับคู่ regex ใน sandbox ตั้งค่า timeout 500ms ให้หยุดอัตโนมัติ แม้จะป้อน regex ที่เป็นอันตรายซึ่งกระตุ้นการย้อนกลับก็จะไม่ทำให้เบราว์เซอร์ของคุณค้าง ซึ่งเป็นคุณสมบัติความปลอดภัยหลักของเครื่องมือนี้

แฟล็ก 6 ตัว g, i, m, s, u, y ใน Regular Expression มีความหมายว่าอย่างไร?

g (global) จับคู่ทั้งหมด ค้นหาผลลัพธ์ทั้งหมดแทนที่จะเป็นตัวแรก; i (ignoreCase) ไม่สนใจตัวพิมพ์ใหญ่เล็ก; m (multiline) โหมดหลายบรรทัด ทำให้ ^ และ $ จับคู่กับจุดเริ่มต้น/จุดสิ้นสุดของแต่ละบรรทัด; s (dotAll) ทำให้จุด . จับคู่กับอักขระทุกตัวรวมถึงขึ้นบรรทัดใหม่; u (unicode) โหมด Unicode จัดการอีโมจิและอักขระหลายไบต์อย่างถูกต้อง; y (sticky) จับคู่แบบติดกัน จับคู่อย่างแม่นยำจากตำแหน่ง lastIndex เครื่องมือนี้มีปุ่มสลับภาพสำหรับ 6 แฟล็ก คลิกเพื่อเปิด/ปิดแบบเรียลไทม์

กลุ่มจับและกลุ่มที่ตั้งชื่อคืออะไร? ใช้งานอย่างไร?

กลุ่มจับหุ้มด้วยวงเล็บ `(pattern)` หลังจากจับคู่แล้วสามารถแยกสตริงย่อยผ่านการอ้างอิง $1, $2 ฯลฯ กลุ่มที่ตั้งชื่อใช้ไวยากรณ์ `(?<name>pattern)` หลังจากจับคู่แล้วสามารถอ้างอิงผ่าน `$<name>` ทำให้โค้ดอ่านง่ายขึ้น ตัวอย่างเช่น หลังจากจับคู่วันที่ด้วย `(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})` สามารถจัดรูปแบบใหม่ในสตริงที่ใช้แทนที่ด้วย `$<year>年$<month>月$<day>日` เครื่องมือนี้จะแสดงผลลัพธ์ของกลุ่มจับและกลุ่มที่ตั้งชื่อของการจับคู่แต่ละครั้งโดยอัตโนมัติ

รองรับไวยากรณ์ regex ของภาษาโปรแกรมใดบ้าง?

เครื่องมือนี้อาศัยกลไก RegExp ดั้งเดิมของ JavaScript เข้ากันได้กับไวยากรณ์ของกลไกหลักๆ ส่วนใหญ่ เช่น JS/TypeScript, โมดูล Python re, Java java.util.regex, PHP preg_*, Go regexp (ทั้งหมดอาศัยแนว PCRE/Perl) ความแตกต่างหลักอยู่ที่คุณสมบัติขั้นสูงบางอย่าง (เช่น วิธีเขียนกลุ่มที่ตั้งชื่อ `(?P<name>)` ของ Python, lookbehind ความยาวผันแปรของ .NET) 99% ของ regex ในการพัฒนาประจำวัน (การตรวจสอบ/แยกอีเมล เบอร์มือถือ URL วันที่ ฯลฯ) ใช้ร่วมกันได้ในทุกกลไก สามารถทดสอบโดยตรงบนเครื่องมือนี้แล้วคัดลอกไปใช้ในโค้ดได้

จะแชร์ regex ที่ทดสอบแล้วให้เพื่อนร่วมงานได้อย่างไร?

คลิกปุ่ม「แชร์」บนแถบเครื่องมือด้านบน เครื่องมือจะเข้ารหัส Regular Expression แฟล็ก และข้อความทดสอบปัจจุบันลงในพารามิเตอร์ URL โดยอัตโนมัติ และคัดลอกลิงก์ไปยังคลิปบอร์ด เพื่อนร่วมงานที่เปิดลิงก์จะเห็นสถานะการทดสอบที่เหมือนกันทุกประการ (pattern+flags+testText) เหมาะอย่างยิ่งสำหรับการทำงานเป็นทีมและดีบั๊กระยะไกล

สัญลักษณ์พิเศษ $1、$&、$`、$' ในสตริงที่ใช้แทนที่มีความหมายว่าอย่างไร?

ในสตริงที่ใช้แทนที่: $1、$2... หมายถึงกลุ่มจับตัวที่ N; $& หมายถึงข้อความทั้งหมดที่จับคู่ได้; $` หมายถึงส่วนก่อนข้อความที่จับคู่; $' หมายถึงส่วนหลังข้อความที่จับคู่; $$ หมายถึงอักขระ $ ตามตัว; $<name> หมายถึงกลุ่มที่ตั้งชื่อ ตัวอย่างเช่น การแทนที่ `(\d{4})-(\d{2})-(\d{2})` ด้วย `$2/$3/$1` สามารถเปลี่ยน 2026-03-12 เป็น 03/12/2026 ได้ พื้นที่แทนที่ของเครื่องมือนี้มีปุ่มแทรกด่วนสำหรับสัญลักษณ์พิเศษเหล่านี้

Regular Expression (Regex/RegExp) คืออะไร?

Regular Expression (ย่อ Regex/RegExp) เป็นภาษารูปแบบข้อความที่อธิบายและจับคู่กับชุดของสตริงที่สอดคล้องกับกฎไวยากรณ์บางอย่างด้วยสตริงเดียว ประวัติสามารถย้อนไปถึงแบบจำลองทางคณิตศาสตร์ของเซลล์ประสาทที่เสนอโดยนักประสาทวิทยา Warren McCulloch และนักคณิตศาสตร์ Walter Pitts ในทศวรรษ 1950 ต่อมานักคณิตศาสตร์ Stephen Kleene ในปี 1956 ได้เสนอคำอธิบายพีชคณิตของ「เซตปกติ」ตามพื้นฐานนั้น บิดาแห่ง Unix Ken Thompson ในปลายทศวรรษ 1960 ได้นำ Regular Expression ไปใช้งานครั้งแรกในเอดิเตอร์ QED ตั้งแต่นั้นมา Regular Expression กลายเป็นฟังก์ชันหลักของเครื่องมือชุด Unix (grep, sed, awk, vi)

ในภาษาโปรแกรมสมัยใหม่ Regular Expression เกือบจะเป็นความสามารถมาตรฐาน — RegExp ของ JavaScript, โมดูล re ของ Python, java.util.regex ของ Java, คลาส Regex ของ .NET, แพ็กเกจ regexp ของ Go ล้วนให้การสนับสนุน regex Regular Expression ถูกใช้อย่างแพร่หลายในสถานการณ์ต่างๆ เช่น การตรวจสอบฟอร์ม (อีเมล/เบอร์มือถือ/บัตรประชาชน) การค้นหาและแทนที่ข้อความ (ค้นหาและแทนที่ในตัวแก้ไข) การวิเคราะห์ล็อก (แยกล็อก ERROR) โปรแกรมรวบรวมข้อมูลเว็บ (แยกเนื้อหา HTML) การทำความสะอาดข้อมูล (ETL) การจับคู่เส้นทาง การกรองข้อมูลนำเข้าและการป้องกันความปลอดภัย (กฎ WAF) ฯลฯ

แนวคิดหลักของ Regular Expression ได้แก่: คลาสอักขระ (\d ตัวเลข, \w อักขระคำ, \s ช่องว่าง) ควอนติไฟเออร์ (* ศูนย์หรือมากกว่า, + หนึ่งหรือมากกว่า, ? ศูนย์หรือหนึ่ง, {n,m} จำนวนที่ระบุ) จุดยึด (^ จุดเริ่มต้น, $ จุดสิ้นสุด, \b ขอบเขตคำ) กลุ่ม ((...) กลุ่มจับ, (?:...) กลุ่มไม่จับ, (?<name>...) กลุ่มที่ตั้งชื่อ) การแตกแขนง (|) เซตอักขระ ([a-z]) การมองรอบ ((?=...) การมองข้างหน้าเชิงบวก, (?!) การมองข้างหน้าเชิงลบ) ฯลฯ การเชี่ยวชาญ regex สามารถเพิ่มประสิทธิภาพการประมวลผลข้อความได้อย่างมาก แต่ก็ต้องระมัดระวังในการป้องกันกับดักประสิทธิภาพเช่น ReDoS

术语表

Regex / RegExp
ตัวย่อของ Regular Expression (นิพจน์ปรกติ) ไวยากรณ์สตริงที่อธิบายรูปแบบการจับคู่ข้อความ ใช้สำหรับค้นหา แทนที่ ตรวจสอบข้อความ
กลุ่มจับ (Capture Group)
นิพจน์ย่อยที่หุ้มด้วยวงเล็บ (pattern) ผลลัพธ์การจับคู่สามารถอ้างอิงตามตำแหน่งผ่าน $1、$2
กลุ่มที่ตั้งชื่อ (Named Group)
กลุ่มจับที่กำหนดด้วยไวยากรณ์ (?<name>pattern) สามารถอ้างอิงตามชื่อผ่าน $<name> อ่านง่ายกว่าการอ้างอิงด้วยตัวเลข
ReDoS
Regular Expression Denial of Service (ปฏิเสธบริการด้วยนิพจน์ปรกติ) เกิดจากการย้อนกลับที่เป็นอันตรายทำให้เวลาทำงานของ regex เพิ่มขึ้นแบบทวีคูณ ทำให้เบราว์เซอร์หรือเซิร์ฟเวอร์ค้าง
การย้อนกลับ (Backtracking)
กลไกของกลไก regex NFA ที่ถอยกลับไปที่ตำแหน่งก่อนหน้าเพื่อลองความเป็นไปได้อื่นเมื่อการจับคู่ล้มเหลว regex ที่ซับซ้อนอาจทำให้เกิดการย้อนกลับแบบทวีคูณ
แฟล็ก (Flags)
พารามิเตอร์ที่แก้ไขพฤติกรรมการจับคู่ regex ที่พบบ่อย ได้แก่ g(ทั้งหมด)、i(ไม่สนใจตัวพิมพ์)、m(หลายบรรทัด)、s(dotAll)、u(Unicode)、y(ติดกัน)
การมองรอบ (Lookaround)
การยืนยันความกว้างศูนย์ รวมถึงการมองข้างหน้าเชิงบวก (?=...) การมองข้างหน้าเชิงลบ (?!) การมองข้างหลังเชิงบวก (?<=...) การมองข้างหลังเชิงลบ (?<!...) เพียงกำหนดตำแหน่งแต่ไม่กินอักขระ
PCRE
Perl Compatible Regular Expressions (นิพจน์ปรกติที่เข้ากันได้กับ Perl) มาตรฐานไวยากรณ์ regex ที่ใช้กันอย่างแพร่หลาย ถูกนำไปใช้โดยภาษาส่วนใหญ่เช่น PHP、Java、Python
Web Worker
API เธรดพื้นหลังที่เบราว์เซอร์จัดให้แยกจากเธรดหลัก เครื่องมือนี้ใช้มันเพื่อรัน regex ใน Worker แม้จะเกิด ReDoS ก็จะไม่บล็อก UI
ควอนติไฟเออร์ (Quantifier)
ไวยากรณ์ที่กำหนดจำนวนครั้งของการทำซ้ำองค์ประกอบก่อนหน้า: *(0 หรือมากกว่า)、+(1 หรือมากกว่า)、?(0 หรือ 1)、{n}(พอดี n ครั้ง)、{n,m}(n ถึง m ครั้ง)

ตารางอ้างอิงด่วนอักขระเมตา regex ที่ใช้บ่อย

อักขระเมตาความหมายคำอธิบายตัวอย่าง
.อักขระเดี่ยวใดๆ (ไม่รวมขึ้นบรรทัดใหม่ ภายใต้แฟล็ก s จะรวมขึ้นบรรทัดใหม่)a.c จับคู่ abc、aXc ไม่จับคู่ a\nc
\dอักขระตัวเลข เทียบเท่า [0-9]\d{3} จับคู่ 123、456
\wอักขระคำ เทียบเท่า [A-Za-z0-9_]\w+ จับคู่ hello_123
\sอักขระช่องว่าง (ช่องว่าง/แท็บ/ขึ้นบรรทัดใหม่ ฯลฯ)a\sb จับคู่ a b (ช่องว่างตรงกลาง)
^จุดเริ่มต้นสตริง (ภายใต้แฟล็ก m คือจุดเริ่มต้นบรรทัด)^Hello จับคู่ Hello ที่จุดเริ่มต้นบรรทัด
$จุดสิ้นสุดสตริง (ภายใต้แฟล็ก m คือจุดสิ้นสุดบรรทัด)end$ จับคู่ end ที่จุดสิ้นสุดบรรทัด
\bขอบเขตคำ\bcat\b จับคู่คำ cat ที่ยืนอยู่คนเดียว ไม่จับคู่ category
*องค์ประกอบก่อนหน้าซ้ำ 0 ครั้งหรือมากกว่า (โลภ)ab*c จับคู่ ac、abc、abbc
+องค์ประกอบก่อนหน้าซ้ำ 1 ครั้งหรือมากกว่าab+c จับคู่ abc、abbc ไม่จับคู่ ac
?องค์ประกอบก่อนหน้า 0 ครั้งหรือ 1 ครั้ง (หรือใช้สำหรับไม่โลภ/การมองรอบ)colou?r จับคู่ color และ colour
|แตกแขนง/หรือ จับคู่ด้านซ้ายหรือด้านขวาcat|dog จับคู่ cat หรือ dog
[...]เซตอักขระ จับคู่อักขระใดๆ ในนั้น[aeiou] จับคู่สระใดๆ

แม่แบบอ้างอิงด่วน Regular Expression ที่ใช้บ่อย

การใช้งานRegular Expressionแฟล็กที่แนะนำ
ที่อยู่อีเมล[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}g
เบอร์มือถือจีนแผ่นดินใหญ่1[3-9]\d{9}g
ลิงก์ URLhttps?:\/\/[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b[-a-zA-Z0-9()@:%_+.~#?&/=]*gi
ที่อยู่ IPv4\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\bg
วันที่ YYYY-MM-DD\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])g
เลขบัตรประชาชน (18 หลัก)[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dXx]g
UUID[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}gi

Code Examples

การจับคู่และแทนที่ regex ใน JavaScript

// ตรวจสอบรูปแบบอีเมล
const emailRe = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailRe.test('user@example.com')); // true

// แยกกลุ่มที่ตั้งชื่อ (แยกวันที่)
const dateRe = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/g;
const text = 'เวลาประชุม:2026-03-12,กำหนดส่ง:2026-04-01';
const matches = [...text.matchAll(dateRe)];
for (const m of matches) {
  console.log(m.groups.year, m.groups.month, m.groups.day);
}

// การแทนที่:แปลงรูปแบบวันที่ YYYY-MM-DD → MM/DD/YYYY
const reformatted = text.replace(dateRe, '$<month>/$<day>/$<year>');
console.log(reformatted);
// เวลาประชุม:03/12/2026,กำหนดส่ง:04/01/2026

การใช้โมดูล re ใน Python

import re

# ค้นหาผลลัพธ์การจับคู่ทั้งหมด
text = 'ติดต่อ:alice@example.com,bob@test.org'
emails = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', text)
print(emails)  # ['alice@example.com', 'bob@test.org']

# แยกกลุ่มที่ตั้งชื่อ (Python ใช้ไวยากรณ์ ?P<name>)
date_pattern = r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})'
m = re.search(date_pattern, 'เผยแพร่เมื่อ 2026-03-12')
if m:
    print(m.group('year'), m.group('month'), m.group('day'))

# การแทนที่:ปกปิด 4 หลักตรงกลางเบอร์มือถือ
phone_re = r'(1[3-9]\d)\d{4}(\d{4})'
result = re.sub(phone_re, r'\1****\2', 'เบอร์มือถือ:13812345678')
print(result)  # เบอร์มือถือ:138****5678

การใช้ java.util.regex ใน Java

import java.util.regex.*;

class RegexDemo {
    public static void main(String[] args) {
        String text = "Error [2026-03-12 18:05:09] Connection failed";

        // คอมไพล์ regex (สภาพแวดล้อมการผลิตควรแคชอินสแตนซ์ Pattern)
        Pattern p = Pattern.compile(
            "(?<level>INFO|WARN|ERROR)\\s+\\[(?<time>[^\\]]+)\\]\\s+(?<message>.+)"
        );
        Matcher m = p.matcher(text);

        if (m.find()) {
            System.out.println("ระดับ: " + m.group("level"));
            System.out.println("เวลา: " + m.group("time"));
            System.out.println("ข้อความ: " + m.group("message"));
        }

        // แทนที่ตัวเลขทั้งหมด
        String cleaned = "abc123def456".replaceAll("\\d+", "*");
        System.out.println(cleaned); // abc*def*
    }
}

Authoritative References

Case Converterจำลองตาบอดสีตัวแปลงสีเครื่องมือแปลง htaccess เป็น Nginxตัวสร้าง Cronตัวตรวจสอบ Cronจัดรูปแบบ CSSบีบอัด CSSCSV เป็น Excelแปลงค่าเงินตรวจสอบความแตกต่างสร้าง Faviconจัดรูปแบบ XMLตัวแปลงเลขฐานสิบหกจัดรูปแบบ HTMLบีบอัด HTMLHTML เป็น Markdownจัดรูปแบบ JSบีบอัด JSจัดรูปแบบ JSXบีบอัด JSXจัดกลุ่มคีย์เวิร์ดสร้าง Lorem Ipsumสร้างตาราง Markdownแปลง Markdown เป็น HTMLสร้าง Meta Tagsเครื่องมือสร้างรหัสผ่านตรวจสอบความแข็งแรงรหัสผ่านเครื่องสร้าง QR Code/บาร์โค้ดเครื่องมือทดสอบ Regexสร้าง URL Slugสร้าง SQLจัดรูปแบบ SQLเครื่องนับคำเครื่องมือเวลาจัดรูปแบบ TSบีบอัด TSจัดรูปแบบ TSXบีบอัด TSXแปลงหน่วยตัวแปลง Unix Timestampเครื่องมือสร้าง UUIDจัดรูปแบบ YAML