Google Apps Script:
การใช้เรกุลาร์เอ็กเพรสชัน
วิธีการ:
การใช้ Regular Expressions ใน Google Apps Script นั้นง่ายดายเนื่องจากไวยากรณ์ที่เป็นแบบ JavaScript นี่คือวิธีที่คุณสามารถผสาน regex เข้ากับสคริปต์ของคุณสำหรับงานทั่วไปเช่นการค้นหาและการตรวจสอบข้อมูล
การค้นหาสตริง
สมมติว่าคุณต้องการหาว่าสตริงมีรูปแบบเฉพาะหรือไม่ เช่น ที่อยู่อีเมล นี่คือตัวอย่างง่ายๆ:
function findEmailInText(text) {
var emailPattern = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/;
var found = text.match(emailPattern);
if (found) {
Logger.log("Found: " + found[0]);
} else {
Logger.log("ไม่พบอีเมล");
}
}
// การใช้งานตัวอย่าง
findEmailInText("ติดต่อเราที่ [email protected].");
การตรวจสอบข้อมูล
Regular expressions ให้ความสำคัญในการตรวจสอบข้อมูล ด้านล่างเป็นฟังก์ชันที่ตรวจสอบสตริงข้อมูลนำเข้าว่าตรงตามนโยบายรหัสผ่านง่ายๆหรือไม่ (ต้องมีอย่างน้อยหนึ่งตัวอักษรตัวใหญ่ หนึ่งตัวอักษรตัวเล็ก และมีความยาวขั้นต่ำ 8 ตัวอักษร)
function validatePassword(password) {
var passwordPattern = /^(?=.*[a-z])(?=.*[A-Z]).{8,}$/;
return passwordPattern.test(password);
}
// ผลลัพธ์ตัวอย่าง
Logger.log(validatePassword("Str0ngPass")); // แสดงผล: true
Logger.log(validatePassword("weak")); // แสดงผล: false
การศึกษาลึก
Regular Expressions ใน Google Apps Script มาจาก JavaScript ซึ่งมีการกำหนดมาตรฐานครั้งแรกในสเปคภาษา ECMAScript ในเดือนมิถุนายน 1997 แม้ว่าพวกมันจะมีพลังมาก แต่บางครั้งก็อาจนำไปสู่โค้ดที่น่าสับสนและยากต่อการบำรุงรักษาได้ โดยเฉพาะอย่างยิ่งเมื่อใช้มากเกินไปหรือใช้สำหรับงานจับคู่รูปแบบที่ซับซ้อนซึ่งอาจแก้ไขได้มีประสิทธิภาพมากขึ้นผ่านวิธีการแยกวิเคราะห์อื่นๆ
ตัวอย่างเช่น ในขณะที่คุณสามารถใช้ regex สำหรับการแยกวิเคราะห์ HTML หรือ XML ได้ในกรณีฉุกเฉิน การทำเช่นนั้นโดยทั่วไปไม่แนะนำเนื่องจากโครงสร้างที่ซับซ้อนและมีการซ้อนทับของเอกสารเหล่านี้ แทนที่จะใช้เครื่องมือที่ออกแบบมาเฉพาะสำหรับการแยกวิเคราะห์โครงสร้างเหล่านั้น เช่น DOM parsers สำหรับ HTML ซึ่งจะน่าเชื่อถือและอ่านง่ายกว่า
นอกจากนี้ นักพัฒนา Google Apps Script ควรตระหนักถึงปัญหาประสิทธิภาพที่อาจเกิดขึ้นเมื่อใช้รูปแบบ regex ที่ซับซ้อนในการจัดการข้อความขนาดใหญ่ เนื่องจากการประมวลผล regex อาจใช้ทรัพยากร CPU อย่างหนัก ในกรณีเช่นนี้ การแบ่งงานออกเป็นงานย่อยที่ง่ายกว่าหรือการใช้ฟังก์ชันการจัดการสตริงที่มีอยู่แล้วอาจเสนอสมดุลที่ดีของประสิทธิภาพและความสามารถในการบำรุงรักษาได้ดีกว่า