การใช้เรกุลาร์เอ็กเพรสชัน

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 อย่างหนัก ในกรณีเช่นนี้ การแบ่งงานออกเป็นงานย่อยที่ง่ายกว่าหรือการใช้ฟังก์ชันการจัดการสตริงที่มีอยู่แล้วอาจเสนอสมดุลที่ดีของประสิทธิภาพและความสามารถในการบำรุงรักษาได้ดีกว่า