ฟังก์ชัน REGEXREPLACE อนุญาตให้คุณแทนที่ข้อความจากสตริงด้วยสตริงอื่น โดยยึดตามนิพจน์ทั่วไป ("regex") ที่ระบุ
ไวยากรณ์
ฟังก์ชัน REGEXREPLACE จะแทนที่สตริงภายในข้อความที่ระบุที่ตรงกับรูปแบบด้วยการแทนที่
ไวยากรณ์ของฟังก์ชัน REGEXEXTRACT คือ
REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
|
text (ต้องระบุ) |
ข้อความหรือการอ้างอิงไปยังเซลล์ที่มีข้อความที่คุณต้องการแทนที่สตริงภายใน |
|
รูปแบบ (ต้องระบุ) |
นิพจน์ทั่วไป ("regex") ที่อธิบายรูปแบบของข้อความที่คุณต้องการแทนที่ |
|
การแทนที่ (ต้องระบุ) |
ข้อความที่คุณต้องการแทนที่อินสแตนซ์ของ Pattern |
| การเกิดขึ้น | ระบุว่าอินสแตนซ์ใดของรูปแบบที่คุณต้องการแทนที่ ตามค่าเริ่มต้น จํานวนเหตุการณ์จะเป็น 0 ซึ่งจะแทนที่อินสแตนซ์ทั้งหมด จํานวนลบจะแทนที่อินสแตนซ์นั้น โดยค้นหาจากจุดสิ้นสุด |
| case_sensitivity | กําหนดว่ารายการที่ตรงกันตรงตามตัวพิมพ์ใหญ่-เล็กหรือไม่ ตามค่าเริ่มต้น การจับคู่จะเป็นแบบตรงตามตัวพิมพ์ใหญ่-เล็ก ใส่อย่างใดอย่างหนึ่งต่อไปนี้: 0: ตรงตามตัวพิมพ์ใหญ่-เล็ก 1: ไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก |
หมายเหตุ
เมื่อเขียนรูปแบบ regex สัญลักษณ์ที่เรียกว่า 'โทเค็น' สามารถใช้ที่ตรงกับอักขระหลายตัวได้ ต่อไปนี้เป็นโทเค็นง่ายๆ สําหรับการอ้างอิง:
- "[0-9]": ตัวเลขใดก็ได้
- "[a-z]": อักขระในช่วงตั้งแต่ A ถึง Z
- ".": อักขระใดก็ได้
- "a": อักขระ "a"
- "a*": ศูนย์หรือมากกว่า "a"
- "A+": "A" อย่างน้อยหนึ่งตัว
- นิพจน์ทั่วไปทั้งหมดสําหรับฟังก์ชันนี้ รวมถึง REGEXTEST และ REGEXEXTRACT ใช้ 'flavor' PCRE2 ของ regex
- REGEXEXTRACT จะส่งกลับค่าข้อความเสมอ คุณสามารถแปลงผลลัพธ์เหล่านี้กลับไปเป็นตัวเลขได้ด้วยฟังก์ชัน VALUE
ตัวอย่าง
คัดลอกข้อมูลตัวอย่างและวางในเซลล์ A1 ของเวิร์กชีต Excel ใหม่ ถ้าคุณต้องการ คุณสามารถปรับความกว้างของคอลัมน์เพื่อดูข้อมูลทั้งหมดได้
ตัวอย่าง 1
ใช้ REGEXREPLACE เพื่อทําให้หมายเลขโทรศัพท์ไม่ระบุชื่อโดยการแทนที่ 3 หลักแรกด้วย *** โดยใช้รูปแบบ
"[0-9]+-"
| ข้อมูล |
|---|
| โซเนีย รีส(378) 555-4195 แองเจิล บราวน์(878) 555-8622 เบลค มาร์ติน(437) 555-8987 วิลเลียม เคอร์บี้(619) 555-4212 เอเวอรี่ สมิธ(579) 555-5658 ปาร์คเกอร์ โจนส์(346) 555-0925 เลียมสมอล(405) 555-0887 ฮอลลี่ รีส(666) 555-1872 |
| สูตร |
| =REGEXREPLACE(A2,"[0-9]+-","***-") |
ภาพประกอบต่อไปนี้แสดงผลลัพธ์ คุณจะต้องตัดข้อความบนเซลล์ A4 เพื่อแสดงตัวแบ่งบรรทัดในผลลัพธ์
ตัวอย่าง 2
ใช้ REGEXREPLACE กับกลุ่มการจับภาพเพื่อแยกและจัดลําดับชื่อและนามสกุลใหม่ โดยใช้รูปแบบ: "([A-Z][a-z]+)([A-Z][a-z]+)"; และการแทนที่: "$2, $1"
หมายเหตุ: กลุ่มการจับภาพจะถูกกําหนดในรูปแบบ ด้วย วงเล็บ "()" และสามารถอ้างอิง ในการแทนที่ เป็น "$n" ในตัวอย่างนี้ $1 และ $2 อ้างอิงถึงกลุ่มการจับภาพกลุ่มแรกและกลุ่มที่สองตามลําดับ
| ข้อมูล |
|---|
| SoniaBrown |
| สูตร |
| =REGEXREPLACE(A2,"([A-Z][a-z]+)([A-Z][a-z]+)","$2, $1") |
ภาพประกอบต่อไปนี้แสดงผลลัพธ์