นิพจน์ทั่วไป (Regex) คืออะไรและจะใช้อย่างไรในการทดสอบ A/B
เผยแพร่แล้ว: 2021-10-26นิพจน์ทั่วไป (หรือ regex) สามารถเป็นเครื่องมือที่มีประสิทธิภาพในคลังแสงของผู้ปฏิบัติงาน CRO
นักวิทยาศาสตร์ด้านข้อมูล นักวิเคราะห์ และคนอื่นๆ หลายคนต้องเจอปัญหาเหล่านี้อย่างไม่ต้องสงสัยในบางครั้งระหว่างการทำงาน อาจเป็นเรื่องยากสำหรับผู้ที่ไม่มีความรู้ด้านเทคนิค แต่การเรียนรู้รูปแบบที่เป็นประโยชน์เหล่านี้เป็นวิธีที่แน่นอนในการยกระดับโปรแกรมการทดลองของคุณ!
ในบล็อกโพสต์นี้ เราจะพยายามทำให้นิพจน์ทั่วไปกระจ่างขึ้น เพื่อให้คุณสามารถเริ่มใช้นิพจน์ทั่วไปได้อย่างมั่นใจ
เราจะเริ่มต้นด้วยการวิเคราะห์โครงสร้างและนิพจน์ทั่วไปประเภทต่างๆ จากนั้นเราจะแสดงตัวอย่างนิพจน์ทั่วไปที่คุณอาจต้องการใช้และวิธีนำรูปแบบเหล่านี้ไปใช้ในส่วนต่างๆ ของการทดสอบ A/B สุดท้าย เรามาดูวิธีการสองสามวิธีที่สามารถนำมาใช้ในแอป Convert Experiences
- Regex คืออะไร?
- คุณจะเขียน ทดสอบ และดีบักนิพจน์ทั่วไปได้อย่างไร
- วิธีเขียน Regex
- อักขระพื้นฐานนิพจน์ทั่วไป
- ปริมาณ
- ตัวละครพิเศษ
- คลาสตัวละคร
- อักขระพื้นฐานนิพจน์ทั่วไป
- วิธีทดสอบนิพจน์ทั่วไป
- วิธีดีบัก Regex
- วิธีใช้ Regex ใน JavaScript
- วิธีที่ 1 ตัวอย่าง
- วิธีที่ 2 ตัวอย่าง
- วิธีเขียน Regex
- ทำไมเราต้องมี Regex ในการทดสอบ A/B?
- วิธีการใช้ Regex ในการทดสอบ A/B?
- Regex Use Case: แปลงอินเทอร์เฟซนิพจน์ทั่วไปของ Checker
- วิธีใช้นิพจน์ทั่วไปในแอป Convert Experiences (พร้อมตัวอย่าง)
- 1. พื้นที่ไซต์กับ Regex
- 2. ผู้ชมด้วย Regex
- 3. เป้าหมายกับ Regex
- 4. Regex ในเว็บไซต์ที่ใช้งานอยู่
- ข้อผิดพลาดทั่วไปที่ควรหลีกเลี่ยงเมื่อใช้ Regex
- 1. รวมตัวละครเริ่มต้นและสิ้นสุด
- 2. รวมสแลชไปข้างหน้า
- 3. เกินขีดจำกัดอักขระ
- 4. เรียกใช้การทดสอบพร้อมกันในหน้าเดียวกัน
Regex คืออะไร?
นิพจน์ทั่วไปเป็นเหมือนภาษาย่อส่วนที่ใช้กันอย่างแพร่หลาย ทำให้ผู้คนสามารถจับคู่รูปแบบที่ซับซ้อนซึ่งอาจต้องใช้เวลาหลายชั่วโมงในการค้นคว้า
พวกเขามีโครงสร้างตัวอักษรและตัวเลขและมาพร้อมกับชุดของสัญลักษณ์เช่นวงเล็บ { } วงเล็บ ( ), ดอกจัน (*), เครื่องหมายคำถาม (?), วงเล็บเปิด ([) วงเล็บปิด (]) เป็นต้น
หากคุณคุ้นเคยกับ regex ด้านล่างเล็กน้อย นี่คือบทความที่เหมาะสำหรับคุณ
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[az]{2,6}\b( [-a-zA-Z0-9@:%_\+.~#()?&//=]*)/
คุณจะเขียน ทดสอบ และดีบักนิพจน์ทั่วไปได้อย่างไร
ตอนนี้ มาแสดงให้คุณเห็นสิ่งที่เป็นไปได้ด้วยนิพจน์ทั่วไป ขั้นแรก เราจะมาดูวิธีการสองสามวิธีที่คุณสามารถสร้าง regexes ที่ซับซ้อนของคุณเองตั้งแต่เริ่มต้น!
วิธีเขียน Regex
ในการสร้างนิพจน์ทั่วไปแรกของคุณ คุณต้องใช้ไวยากรณ์เฉพาะ กล่าวคือ อักขระพิเศษ (เมตาคาแรคเตอร์) และกฎการสร้าง ตัวอย่างเช่น ต่อไปนี้เป็นนิพจน์ทั่วไปอย่างง่ายที่ตรงกับหมายเลขโทรศัพท์ 10 หลักในรูปแบบ nnn-nnn-nnnn:
\d{3}-\d{3}-\d{4}
คุณสามารถเริ่มเขียนไวยากรณ์เฉพาะได้ด้วยตัวเอง (และทำผิดพลาดมากมายจนกว่าคุณจะมีรูปแบบ regex ที่ตรวจสอบความถูกต้องแล้ว) หรือใช้ตัวสร้าง regex ที่มีอยู่ หนึ่งในเครื่องมือที่ใช้งานง่ายและใช้งานง่ายที่สุดคือ Regex Generator
เพียงวางตัวอย่างข้อความที่คุณต้องการจับคู่โดยใช้ regex (ตัวอย่างเช่น ฉันใช้ URL ของ Convert www.convert.com ด้านล่าง) จากนั้นเลือกส่วนต่างๆ ของข้อความที่คุณต้องการสร้าง regex
แค่นั้นแหละ! ง่ายมาก
จากนั้นรูปแบบ regex ก็พร้อมใช้งาน:
w+\.[a-zA-Z]+\.com
อีกตัวอย่างหนึ่งอาจเป็นการป้อนที่อยู่อีเมลสนับสนุนและระบุส่วนโดเมนของที่อยู่เพื่อสร้าง regex บน:
regex พร้อมสำหรับคุณแล้ว และตอนนี้คุณสามารถกำหนดเป้าหมายที่อยู่อีเมลสนับสนุนทั้งหมดของเครื่องมือที่คุณใช้โดยไม่ต้องคัดลอกและวางทีละรายการ:
support@[a-zA-Z]+\.com
หากคุณเชี่ยวชาญด้านเทคโนโลยีมากขึ้นและต้องการเขียนรูปแบบนั้นด้วยตัวเอง คุณสามารถเริ่มเรียนรู้อักขระพื้นฐานและปริมาณรวมทั้งกฎการก่อสร้างบางอย่างได้
อักขระพื้นฐานนิพจน์ทั่วไป
นี่คือ "สูตรโกง" ฉบับย่อสำหรับผู้ที่ต้องการเรียนรู้กฎทั่วไปของ regex
ปริมาณ
แล้วถ้าคุณต้องการจับคู่ตัวละครหลายตัวล่ะ? คุณต้องใช้ตัวนับ ตัวระบุที่สำคัญที่สุดคือ *?+ พวกเขาอาจดูคุ้นเคยสำหรับคุณ แต่ก็ไม่เหมือนกันทุกประการ
- * จับคู่ 0 หรือมากกว่าของสิ่งที่มาก่อน
- ? จับคู่ศูนย์หรือสิ่งใดสิ่งหนึ่งที่อยู่ข้างหน้ามัน
- + จับคู่สิ่งที่อยู่ก่อนหน้าอย่างน้อยหนึ่งอย่าง
ตัวละครพิเศษ
มีอักขระพิเศษมากมายสำหรับการสร้าง regex ต่อไปนี้คือรายการที่พบบ่อยที่สุด:
. | จุดตรงกับอักขระตัวเดียว |
\n | จับคู่อักขระขึ้นบรรทัดใหม่ (หรือชุดค่าผสม CR+LF) |
\t | จับคู่แท็บ (ASCII 9) |
\d | ตรงกับตัวเลข [0-9] |
\D | ตรงกับที่ไม่ใช่ตัวเลข |
\w | จับคู่อักขระที่เป็นตัวอักษรและตัวเลขคละกัน |
\W | จับคู่อักขระที่ไม่ใช่ตัวเลขและตัวอักษร |
\s | จับคู่อักขระช่องว่าง |
\S | จับคู่อักขระที่ไม่ใช่ช่องว่าง |
\ | ใช้ \ เพื่อหนีอักขระพิเศษ ตัวอย่างเช่น, \. จับคู่จุด และ \\ จับคู่แบ็กสแลช |
^ | จับคู่ที่จุดเริ่มต้นของสตริงอินพุต |
$ | จับคู่ที่ส่วนท้ายของสตริงอินพุต |
คลาสตัวละคร
คุณสามารถจัดกลุ่มอักขระโดยวางไว้ระหว่างวงเล็บเหลี่ยม ด้วยวิธีนี้ อักขระใดๆ ในคลาสจะจับคู่อักขระหนึ่งตัวในอินพุต
[เอบีซี] | จับคู่ a, b และ c |
[az] | จับคู่อักขระใดก็ได้ระหว่าง a และ z (คำสั่ง ASCII) |
[^abc] | คาเร็ต ^ ที่จุดเริ่มต้นของวงเล็บเหลี่ยมหมายถึง "ไม่" ในกรณีนี้ ให้จับคู่อย่างอื่นที่ไม่ใช่ a, b หรือ c |
[+*?.] | อักขระพิเศษส่วนใหญ่ไม่มีความหมายภายในวงเล็บเหลี่ยม นิพจน์นี้ตรงกับ +, *, ? หรือจุด |
ต้องการความช่วยเหลือในการสร้างนิพจน์ทั่วไปของคุณหรือไม่?
หากคุณไม่คุ้นเคยกับสำนวนทั่วไปและต้องการเรียนรู้เพิ่มเติม เราขอแนะนำหลักสูตรเร่งรัดฉบับย่อ! Regex เป็นเครื่องมือที่ทรงพลังที่ต้องใช้เวลาเพียงเล็กน้อยในการเรียนรู้
วิธีทดสอบนิพจน์ทั่วไป
ตอนนี้คุณมีรูปแบบ regex ของคุณพร้อมแล้ว แต่คุณต้องการทดสอบว่าไวยากรณ์ถูกต้องหรือไม่ คุณสามารถทำได้ด้วยตนเองและใช้เวลาหลายชั่วโมงในการอ่านกฎการตรวจสอบ Mathias Bynens มีบทความดีๆ เกี่ยวกับการเปรียบเทียบที่ดีที่สุดของนิพจน์ทั่วไปจำนวนมาก: ในการค้นหา regex การตรวจสอบความถูกต้อง URL ที่สมบูรณ์แบบ นั่นเป็นวิธีที่บ้าที่จะก้าวไปข้างหน้า
แต่โชคดีที่มีตัวตรวจสอบ regex ออนไลน์ฟรีมากมายที่คุณสามารถใช้ประโยชน์จากและทดสอบสตริงของคุณกับรูปแบบ regex ที่คุณสร้างขึ้นได้อย่างรวดเร็ว เราสามารถแนะนำสองรายการ ได้แก่ RegEx101 และ RegExr ภาพหน้าจอด้านล่างมาจากภาพหลัง แต่คุณสามารถใช้ภาพที่คุณรู้สึกสบายใจที่สุดได้
เพียงเพิ่มรูปแบบ regex ของคุณในช่อง Expression จากนั้นในฟิลด์ Text ให้เพิ่มข้อความใดๆ ที่คุณต้องการดูว่าตรงกับรูปแบบของคุณหรือไม่ คุณสามารถดูได้ทันทีว่าข้อความที่คุณป้อนตรงกับรูปแบบเฉพาะจำนวนเท่าใด
เครื่องมือตรวจสอบ regex เหล่านี้มีประสิทธิภาพมาก!
วิธีดีบัก Regex
การทดสอบ regex ของคุณมีความสำคัญมากกว่าการดีบัก โดยปกติแล้ว คุณสามารถทราบได้ว่าเกิดอะไรขึ้นกับ regex ค่อนข้างง่ายโดยดูจากผลลัพธ์ แต่เพื่อให้แน่ใจว่าจะทำงานตามที่คุณตั้งใจไว้ คุณควรทดสอบ regex ของคุณกับตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ที่เป็นไปได้ทั้งหมด การทดสอบในที่สุดจะชี้แจงสิ่งที่คุณต้องการทำจริง ๆ และทำให้การดีบักไร้ประโยชน์
อย่างไรก็ตาม หากคุณยังต้องการแก้ปัญหารูปแบบ regex ของคุณ คุณสามารถพิมพ์ลงใน https://regex101.com/ ไม่เพียงแต่จะให้คุณทดสอบ regexes ของคุณในชุดตัวอย่าง กำหนดรหัสสีให้กับกลุ่มการจับคู่ของคุณ แต่ยังให้คำอธิบายอย่างครบถ้วนว่าเกิดอะไรขึ้นภายใต้ประทุน
โปรดจำไว้ว่า คุณจะต้องอ้างอิงเอกสารเฉพาะสำหรับภาษาการเขียนโปรแกรมเฉพาะที่คุณใช้ regex แต่ละรายการมีข้อจำกัดเฉพาะ บางสิ่งอาจไม่รองรับในบางภาษา
หากคุณต้องการประสบการณ์ "การแก้ไขภาพ" มากขึ้น ให้ลองใช้ Debuggex
มันแสดงเส้นทางใน regex ของคุณดังนี้:
วิธีใช้ Regex ใน JavaScript
มีสองวิธีในการสร้างนิพจน์ทั่วไปใน JavaScript สามารถสร้างได้ด้วยโมดูล RegExp หรือโดยใช้เครื่องหมายทับ ( / ) เพื่อปิดรูปแบบ เครื่องหมายทับ /…/ บอก JavaScript ว่าเรากำลังสร้างนิพจน์ทั่วไป พวกเขามีบทบาทเช่นเดียวกับเครื่องหมายคำพูดสำหรับสตริง
ในทั้งสองกรณี regexp จะกลายเป็นอินสแตนซ์ของโมดูล RegExp ในตัว
ความแตกต่างหลักระหว่างไวยากรณ์ทั้งสองนี้คือรูปแบบที่ใช้เครื่องหมายทับ /…/ เป็นแบบสแตติกทั้งหมด ในขณะที่อีกรูปแบบหนึ่งสามารถสร้างนิพจน์ทั่วไปได้ทันที
วิธีที่ 1 ตัวอย่าง
มาดูตัวอย่างด้านล่างของ RegExp ที่ใช้ตรวจสอบการป้อนข้อมูลของผู้ใช้ และตรวจสอบว่าข้อมูลที่ป้อนมีเฉพาะตัวเลขเท่านั้น:
ให้ num = 'ฉัน'; ให้ regex = ใหม่ RegExp('[0-9]'); console.log(regex.test(num)); // นี่จะส่งออก false
วิธีที่ 2 ตัวอย่าง
มาดูนิพจน์ง่ายๆ ที่มีเครื่องหมายสัญกรณ์ที่จะค้นหาการจับคู่ที่ตรงกันในสตริง สิ่งนี้จะจับคู่กับสตริง ดำเนินการค้นหาโดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่:
let re = "สวัสดี เรียนคืนนี้"; ให้ผล = /hello/.test(re); console.log (ผลลัพธ์); //เอาต์พุตเท็จ
หลังจากที่คุณเขียนแล้ว มีวิธีการที่น่าสนใจสองวิธีในการทดสอบนิพจน์ทั่วไป JavaScript ของคุณ:
- RegExp.prototype.test(): เพื่อทดสอบว่าพบรายการที่ตรงกันหรือไม่ ยอมรับสตริงที่เราทดสอบกับนิพจน์ทั่วไป มันจะคืนค่าจริงหรือเท็จหากพบการจับคู่
- RegExp.prototype.exec(): ส่งกลับอาร์เรย์ที่มีกลุ่มที่ตรงกันทั้งหมด ยอมรับสตริงที่เราทดสอบกับนิพจน์ทั่วไป
ในตัวอย่างต่อไปนี้ รูปแบบ /JavaScript/ ถูกทดสอบกับสตริงเพื่อดูว่าพบรายการที่ตรงกันหรือไม่:
var re = /JavaScript/; var str = "จาวาสคริปต์"; ถ้า (re.test(str)) document.writeln("จริง" );
ในตัวอย่างโค้ดต่อไปนี้ วิธี RegExp, exec, ค้นหารูปแบบเฉพาะ, /javascript*/, ทั่วทั้งสตริง (g), ละเว้นตัวพิมพ์ (i):
var re = /javascript*/ig; var str = "cfdsjavascript *(&Yjavascriptjs 888javascript"; var resultArray = re.exec(str); ในขณะที่ (resultArray) { document.writeln(resultArray[0]); resultArray = re.exec(str); }
ทำไมเราต้องมี Regex ในการทดสอบ A/B?
Regex ในการทดสอบ A/B ส่วนใหญ่จะใช้สำหรับการกำหนดเป้าหมาย การกำหนดเป้าหมายจะควบคุมว่า ใคร และ ที่ ใดของประสบการณ์
ผ่านการกำหนดเป้าหมาย คุณกำลังบอกแพลตฟอร์มการทดสอบของคุณว่าใคร (เงื่อนไขของผู้เยี่ยมชมเว็บไซต์ใด) ที่จะแสดงประสบการณ์และที่ใด (ซึ่ง URL เฉพาะ) ประสบการณ์ควรทำงานบนไซต์ของคุณ
โดยการกำหนดผู้ชม คุณสามารถตัดสินใจได้ว่าใครจะเห็นประสบการณ์ เงื่อนไขของผู้ชมสามารถกำหนดแหล่งที่มาของการเข้าชม ข้อมูลทางภูมิศาสตร์ ข้อมูลพฤติกรรม คุกกี้เฉพาะที่ผู้เยี่ยมชมของคุณมี และเงื่อนไขที่ไม่สิ้นสุดที่คุณสามารถระบุตัวคุณเองได้
การกำหนดเป้าหมาย URL ทำให้ คุณตัดสินใจได้ว่าจะให้ประสบการณ์ใช้งานที่ใด เงื่อนไขการกำหนดเป้าหมาย URL สามารถมีหลายโดเมน โดเมนย่อย พารามิเตอร์การค้นหา และเส้นทาง
บางครั้ง เป็นไปไม่ได้เลยที่จะใช้โอเปอเรเตอร์ "ตรงทั้งหมด" หรือ "มี" หรือ "เริ่มต้นด้วย" เพื่อเพิ่มปริมาณการรับส่งข้อมูลกับประสบการณ์ของคุณ นี่คือที่มาของ regexes
นี่คือ กลุ่มตัวอย่าง 5 กลุ่มที่สามารถยกเว้นหรือรวมอยู่ในประสบการณ์และกำหนดด้วย regex :
- ผู้เข้าชมที่มาจากแคมเปญโฆษณาที่มีชื่อเหมือนกันแต่คำที่เหลือต่างกัน (เช่น รองเท้า-ซื้อ-มือถือ, แหวน-ซื้อ-เดสก์ท็อป)
- ผู้เข้าชมที่ใช้เบราว์เซอร์เฉพาะรุ่น (เช่น Firefox 3.6.4)
- ผู้เยี่ยมชมที่มาจากไซต์บุคคลที่สาม เช่น Facebook หรือ TikTok ซึ่งคุณต้องกำหนดกลุ่มชื่อโดยเฉพาะ
- ผู้เยี่ยมชมที่เคยเห็นโปรโมชั่นมาก่อน
- ผู้เข้าชมที่เข้าสู่ระบบและคุกกี้เพื่อควบคุมคุณลักษณะการเข้าสู่ระบบจะมีตัวระบุที่ไม่ซ้ำกัน
นี่คือ สถานที่ตัวอย่าง 5 แห่งที่คุณอาจต้องการรวมหรือแยกออกจากประสบการณ์ และสามารถกำหนดได้ด้วย regex :
- เพจที่มีค่าสตริงการสืบค้นแบบไดนามิก/ไม่ซ้ำกัน
- หน้า Landing Page เฉพาะที่มีคำทั่วไปแต่มีตัวระบุที่ไม่ซ้ำ
- หมวดหมู่และหน้าหมวดหมู่ย่อย
- หลายหน้าในช่องทางการเช็คเอาต์ในขณะที่ผู้เยี่ยมชมเปลี่ยนจากขั้นตอนหนึ่งไปยังอีกขั้นหนึ่ง
- ทุกที่ยกเว้นบางหน้า
วิธีการใช้ Regex ในการทดสอบ A/B?
นิพจน์ทั่วไปมีประโยชน์ในทุกประสบการณ์ A/B / MVT / Personalization / A/A / Multipage / Split URL ที่ได้รับประโยชน์จากการจับคู่รูปแบบ URL ทั้งหมดหรือบางส่วน
เราสามารถใช้ regex ในการทดสอบ A/B เพื่อ:
- ตรวจสอบโครงสร้างของ URL
- แยกสตริงย่อยจาก URL ที่มีโครงสร้าง
- ค้นหา / แทนที่ / จัดเรียงส่วนของ URL ใหม่
- แบ่ง URL เป็นโทเค็น
- ค้นหาส่วนคงที่ของ URL
สิ่งเหล่านี้เกิดขึ้นเป็นประจำเมื่อร่างประสบการณ์การเปลี่ยนใจเลื่อมใส
การจับคู่ Regex มีประโยชน์เมื่อเส้นทาง พารามิเตอร์ต่อท้าย หรือทั้งสองอย่าง อาจแตกต่างกันใน URL สำหรับหน้าเว็บเดียวกัน
ตัวอย่างเช่น หากผู้ใช้มาจากโดเมนย่อยหนึ่งในหลายๆ โดเมน และ URL ของคุณใช้ตัวระบุเซสชัน คุณสามารถใช้นิพจน์ทั่วไปเพื่อกำหนดองค์ประกอบคงที่ของ URL ของคุณได้ ค่อนข้างสะดวกใช่มั้ย?
ที่ Convert เราใช้นิพจน์ทั่วไป (ย่อให้เหลือ regex และ regexes ) เพื่อให้คุณสามารถ กำหนดเป้าหมายประสบการณ์ของคุณ ไปยังชุดของเพจเฉพาะ หรือไปยัง URL ที่ซับซ้อนหรือไดนามิก นอกจากนี้ยังใช้เพื่อ กำหนดผู้ชมด้วยตัวแปรหลายตัว ที่มีบางอย่างที่เหมือนกัน ซึ่งทำให้คุณสามารถกำหนดเป้าหมายผู้เยี่ยมชมเว็บไซต์ที่เฉพาะเจาะจงและในกรณีการใช้งานอื่นๆ ที่เรานำเสนอด้านล่าง
มีข้อมูลมากมายเกี่ยวกับ regexes บนอินเทอร์เน็ต และส่วนใหญ่ใช้ไม่ได้กับวิธีที่คุณจะใช้กับ Convert Experiences ดังนั้นเราจึงได้สร้างคู่มือ regex นี้ขึ้นเพื่อช่วยคุณในการเริ่มต้น
Regex Use Case: แปลงอินเทอร์เฟซนิพจน์ทั่วไปของ Checker
มีหลายผู้ทดสอบ/ผู้ตรวจสอบ regex ที่คุณสามารถใช้ได้ก่อนที่คุณจะนำสูตรและรูปแบบของคุณไปไว้ใน Convert UI
เราได้ออกแบบส่วน regex (ดูด้านล่าง) เพื่อให้ง่ายสำหรับผู้ใช้ที่ไม่คุ้นเคยในการเขียนสูตร regex ของตนเองและตรวจสอบความถูกต้องด้วยตัวตรวจสอบของเรา
จากนั้น การจับคู่นิพจน์ทั่วไปจะได้รับการประเมินโดยใช้โมดูล RegExp ปกติในตัวของ JavaScript
ต่อไปนี้คือตัวอย่างบางส่วนของลักษณะของตัวตรวจสอบในตำแหน่งต่างๆ ในแอป:
วิธีใช้นิพจน์ทั่วไปในแอป Convert Experiences (พร้อมตัวอย่าง)
ตอนนี้ มาดูกรณีการใช้งานแต่ละกรณีกัน และดูตัวอย่างบางส่วนของอินสแตนซ์ที่ regexes มีประโยชน์อย่างมาก
1. พื้นที่ไซต์กับ Regex
พื้นที่ไซต์คือที่ภายในแอป Convert Experiences ที่คุณกำหนดค่าเกณฑ์การกำหนดเป้าหมายหน้าเว็บที่เรียกประสบการณ์ของคุณ
การกำหนดค่า URL พื้นฐานที่สุดจะทริกเกอร์การทดสอบโดยพิจารณาจาก URL ตัวอย่างเช่น: “https://www.convert.com“
การตั้งค่านี้ได้รับการกำหนดค่าโดยอัตโนมัติเมื่อคุณสร้างการทดสอบครั้งแรก และตั้งค่าเป็น URL ที่คุณป้อนเพื่อสร้างการทดสอบ A/B / การทดสอบ MVT / การปรับเปลี่ยนในแบบของคุณ หรือ URL ดั้งเดิมในการทดสอบ URL แบบแยกส่วน
อย่างไรก็ตาม คุณสามารถเปลี่ยนการกำหนดค่าเริ่มต้นนี้ได้โดยเลือกโอเปอเรเตอร์ตัวใดตัวหนึ่งที่ Site Area จัดเตรียมไว้สำหรับการเรียกประสบการณ์ของคุณ
โอเปอเรเตอร์ตัวหนึ่งเรียกว่า “Matches Regex” และอีกตัวหนึ่งเรียกว่า “ไม่ตรงกับ regex ทุกประการ”
คุณสามารถใช้สองตัวเลือกนี้เพื่อกำหนดหน้าที่คุณต้องการเรียกใช้ประสบการณ์การแปลงเมื่อไม่มีโอเปอเรเตอร์อื่นใดที่เป็นประโยชน์ในการใช้การตั้งค่า URL ที่คุณต้องการ
มาดู Use case ต่างๆ เพื่อให้เข้าใจง่ายขึ้นกัน!
ตัวอย่าง 1
สมมติว่าคุณต้องการเรียกใช้ประสบการณ์ด้วยสองเงื่อนไขนี้:
- แหล่งที่มาของการเข้าชม = Google Adwords
- URL มี prg=ABTEST
นี่คือวิธีที่คุณจะเขียน regex ในพื้นที่ไซต์ของคุณ:
https://convert.com/\?(?=.*utm_source=google)(?=.*prg=ABTEST)*
ตัวอย่าง 2
สมมติว่าคุณต้องการเปรียบเทียบหน้า Landing Page 3 หน้ากับตัวแปรเดียว
หน้า Landing Page คือ:
- https://www.convert.com/lp-home
- https://www.convert.com/lp-home-agencies
- https://www.convert.com/lp-home-clients
โดยมีตัวแปรเป็น https://www.convert.com/lp-semhome/desktop
ในตัวอย่างนี้ คุณจะต้องเขียน regex ในพื้นที่ไซต์ของคุณดังนี้:
https:\/\/www.convert.com\/lp-home(\/|-agencies|-clients|)
ตัวอย่างที่ 3
ตอนนี้ ลองจินตนาการว่าเพื่อนร่วมงานของคุณขอให้คุณสร้างประสบการณ์โดย:
- การรับส่งข้อมูลไปยังต้นฉบับควรเป็น 0
- พารามิเตอร์การค้นหาประกอบด้วย utm_bucket=competitor
- ปริมาณการใช้ข้อมูลจะถูกแบ่ง 50/50 ระหว่างสองรูปแบบ ดังนั้นเมื่อปริมาณการใช้งานไปที่ https://convert.com/?utm_bucket=competitor แล้ว 50% ของปริมาณการใช้งานจะไปที่ https://convert.com/vs-offerpad/ และอื่นๆ 50% ไปที่ https://convert.com/vs-zillow/
ในกรณีนี้ regex จะมีลักษณะดังนี้:
https://www.convert.com/([^\?]+)?\?{0,1}(.*)([&,\?]utm_bucket=competitor)(.*)$
ตัวอย่างที่ 4
อีกกรณีหนึ่งคือ คุณต้องการทดสอบเงื่อนไขด้านล่าง:
- URL ของหน้าควรมี /collections/
- หน้า UR ไม่ควรมี /products/
- URL ของหน้าไม่ควรตรงกันทุกประการ: https://convert.com/collections/
- พารามิเตอร์การค้นหา URL ไม่ควรมี ?v=t
- URL ดั้งเดิมอาจเป็นหน้าใดก็ได้ภายใต้คอลเล็กชัน
ที่นี่ คุณต้องรวม regex กับผู้ชมเพื่อให้เป็นไปตามเงื่อนไขทั้งหมด ดังนั้น regex ในพื้นที่ไซต์ของคุณจะมีลักษณะดังนี้:
และอย่าลืมกำหนดผู้ชมเพื่อยกเว้นผู้เข้าชมที่มี ?v=t ใน URL ของพวกเขา
https://www.convert.com/collections/(?!(.*\/)products)(.*)([^\?]+)?\?{0,1}(.*)$
ตัวอย่างที่ 5
ในตัวอย่างสุดท้ายนี้ สมมติว่าคุณต้องการเรียกใช้ประสบการณ์ Split URL โดยที่เมื่อรวมขนาดร้านค้าไว้ใน URL แล้ว คุณต้องการเรียกใช้การทดสอบและแบ่งการรับส่งข้อมูลระหว่างต้นฉบับและตัวแปร
1. ต้นฉบับสามารถเป็นรายการใดก็ได้ด้านล่าง:
https://convert.com/products/shop-size
https://convert.com/collections/new-products-deals/products/shop-size
https://convert.com/collections/fitting/products/shop-size
2. URL รูปแบบอาจมีลักษณะดังนี้: https://convert.com/products/the-original-fittings
ที่นี่ นี่จะเป็น regex ของคุณ:
2. ผู้ชมด้วย Regex
อีกส่วนที่คุณสามารถใช้ประโยชน์จากนิพจน์ทั่วไปในแอป Convert Experiences ได้ก็คือ ผู้ชม
ผู้ชมคือกลุ่มผู้ใช้/ผู้เยี่ยมชมเว็บไซต์ที่มีสิ่งที่เหมือนกัน ด้วยผู้ชม คุณจะจัดหมวดหมู่ผู้เยี่ยมชมเว็บไซต์ของคุณออกเป็นกลุ่มตามเกณฑ์เฉพาะ เช่น สถานที่ อุปกรณ์ที่ใช้ในการเข้าถึงไซต์ ชั่วโมงของวัน หน้า Landing Page หรือพฤติกรรมของผู้ใช้อื่นๆ
ผู้เยี่ยมชมกลุ่มย่อยอื่นมีแนวโน้มที่จะประพฤติหรือซื้อในลักษณะเดียวกัน คุณสามารถสร้างผู้ชมได้โดยการระบุเงื่อนไขที่อนุญาตให้ Convert เพื่อตัดสินใจว่าผู้เข้าชมรายใดมีสิทธิ์และเรียกใช้การทดสอบหรือรูปแบบที่ถูกต้อง
เรารองรับ regex เฉพาะในประเภทผู้ชม 3 ประเภทที่เรามีให้เท่านั้น นั่นคือการแบ่งกลุ่ม
เมื่อคุณเลือกผู้ชมประเภทนี้ เงื่อนไขเหล่านี้จะพร้อมใช้งาน:
ตัวอย่าง
สมมติว่าคุณต้องการเรียกใช้ประสบการณ์ที่กำหนดเป้าหมายผู้เข้าชมเว็บไซต์ซึ่งหน้า Landing Page ประกอบด้วยคำทั่วไป เช่น "ผลิตภัณฑ์" ในกรณีนี้ คุณจะต้องเลือกเงื่อนไข "URL ของหน้า" จากรายการทางด้านซ้าย จากนั้นเลือก "Matches Regex" เป็นโอเปอเรเตอร์ของคุณ
และคุณทำเสร็จแล้ว!
3. เป้าหมายกับ Regex
ในการติดตามการแปลงเป้าหมายสำหรับประสบการณ์ของคุณ คุณต้องระบุ URL ของหน้าที่คุณต้องการบันทึกการแปลง Convert Experiences ให้คุณป้อน URL เฉพาะ รูปแบบหน้า หรือนิพจน์ทั่วไป (regex) ของหน้าที่คุณต้องการบันทึกการแปลงเป้าหมาย
ตัวอย่าง
สมมติว่าเป้าหมายของคุณคือการตรวจสอบจำนวนผู้ใช้ที่เข้าถึงหน้าใดหน้าหนึ่งของเว็บไซต์ของคุณ
ในกรณีนี้ คุณต้องกำหนดประเภทเป้าหมายเป็น "เข้าชมหน้าเฉพาะ" และป้อน URL ของหน้าที่ผู้ใช้ต้องเข้าชม เพื่อบันทึก Conversion:
และนี่คือสิ่งที่ regex ของคุณดูเหมือน:
https://convert.com/$1/privacy/?$3
4. Regex ในเว็บไซต์ที่ใช้งานอยู่
Convert รองรับไวด์การ์ดในการตั้งค่า "เว็บไซต์ที่ใช้งานอยู่" ของคุณ
ตัวอย่างเช่น หากคุณต้องการรวมโดเมนย่อยทั้งหมดภายใต้ “domain.com” คุณควรตั้งค่ารายการ “Active Domain” ดังนี้: “ http://*.domain.com “
ข้อผิดพลาดทั่วไปที่ควรหลีกเลี่ยงเมื่อใช้ Regex
การกำหนด regex ของคุณสำหรับการกำหนดเป้าหมาย URL เพียงครั้งเดียวไม่เพียงพอแล้วละเว้น ต้องมีการล้างข้อมูลและการตรวจสอบเป็นประจำเพื่อให้แน่ใจว่าหน้า/ผู้ชม/เป้าหมายที่ถูกต้องนั้นอยู่ในการทดสอบที่ถูกต้องอย่างต่อเนื่อง
ต่อไปนี้คือข้อผิดพลาดหลักที่เรามักพบในตั๋วสนับสนุนของเรา:
1. รวมตัวละครเริ่มต้นและสิ้นสุด
หากคุณใส่อักขระเริ่มต้นและสิ้นสุด (^ และ $) URL ใดๆ ที่มีข้อความก่อนหรือหลังรูปแบบจะไม่ถูกจับคู่
หลีกเลี่ยงการใช้
เป็นเรื่องปกติมากที่ URL จะรวมสตริงการสืบค้นไว้ที่ส่วนท้าย เช่น พารามิเตอร์ UTM ที่เพิ่มลงใน URL เพื่อวัตถุประสงค์ในการติดตาม
ตัวอย่างนี้จะเป็น:
https://www.convert.com/?utm_campaign=ads
2. รวมสแลชไปข้างหน้า
โดยทั่วไปแล้ว เครื่องหมายทับ (/) ที่ส่วนท้ายของ URL นั้นไม่บังคับ
หาก regex ของคุณรวมอักขระนั้นไว้ที่ส่วนท้าย การเข้าชม URL เดียวกันแต่ไม่มีเครื่องหมายทับจะไม่ตรงกัน เป็นการดีกว่าที่จะไม่รวมอักขระทับตัวสุดท้ายนั้น
3. เกินขีดจำกัดอักขระ
กฎการกำหนดเป้าหมายนิพจน์ทั่วไปของเรามีอักขระได้ไม่เกิน 750 ตัว หากคุณใช้เกินขีดจำกัดนี้ จะไม่มีข้อผิดพลาดในการแจ้งเตือนคุณถึงปัญหา (แม้ว่าฉันเชื่อว่าไม่สามารถเข้าถึงขีดจำกัดนี้ได้อย่างง่ายดาย)
4. เรียกใช้การทดสอบพร้อมกันในหน้าเดียวกัน
หากคุณพยายามเรียกใช้การทดสอบหลายรายการในหน้าเดียวกันพร้อมกัน จะทำให้เกิดความขัดแย้งว่าผู้เยี่ยมชมควรเข้าร่วมในการทดสอบใดและจะต้องทำการเปลี่ยนแปลงใดก่อน
ด้วยเหตุนี้ คุณจึงควรระมัดระวังในการกำหนดเป้าหมาย URL นิพจน์ทั่วไป หากคุณกำหนดเป้าหมายหน้าเดียวกันโดยใช้กฎการกำหนดเป้าหมายของการทดสอบ A/B มากกว่าหนึ่งรายการ คุณต้องใช้คำแนะนำเหล่านี้เพื่อป้องกันการชนกัน
หากคุณกำลังมองหาความช่วยเหลือในการทำความเข้าใจนิพจน์ทั่วไปหรือด้วยการกำหนดเป้าหมาย URL ของ Convert Experiences ของคุณ ทีมสนับสนุนของเราพร้อมที่จะตอบคำถามของคุณ คุณสามารถติดต่อเราได้ตลอดเวลาผ่านการแชทในแอป เรายินดีที่จะให้ภาพรวมและแสดงตัวอย่างเพื่อให้คุณสามารถเริ่มใช้ regex ได้อย่างมั่นใจในการทดสอบของคุณ!