ฟังก์ชัน REGEXREPLACE

นำไปใช้กับ
Excel for Microsoft 365 Excel for Microsoft 365 for Mac

ฟังก์ชัน 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 เพื่อแสดงตัวแบ่งบรรทัดในผลลัพธ์

ใช้ REGEXREPLACE เพื่อแทนที่ตัวเลขสามหลักแรกของหมายเลขโทรศัพท์แต่ละหมายเลขในข้อความผสมด้วย * โดยใช้รูปแบบ [0-9]+-

ตัวอย่าง 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")

ภาพประกอบต่อไปนี้แสดงผลลัพธ์

ใช้ REGEXREPLACE กับกลุ่มการจับภาพเพื่อแยกและจัดลําดับชื่อและนามสกุลใหม่ โดยใช้รูปแบบ: ([A-Z][a-z]+)([A-Z][a-z]+) และการแทนที่: $2, $1