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