หากต้องการสร้างนิพจน์ทั่วไป คุณจะต้องใช้ไวยากรณ์ตามที่กำหนด กล่าวคือ จะต้องใช้อักขระพิเศษและกฎของการเขียนนิพจน์ ตัวอย่างเช่น ต่อไปนี้เป็นนิพจน์ทั่วไปแบบง่ายที่จับคู่หมายเลขโทรศัพท์ที่มี 10 หลัก ในรูปแบบ nnn-nnn-nnnn
\d{3}-\d{3}-\d{4}
ตารางต่อไปนี้อธิบายถึงอักขระพิเศษที่มักใช้ในนิพจน์ทั่วไป อักขระเหล่านี้แบ่งออกเป็นประเภทต่างๆ ดังนี้
| อักขระ | คำอธิบาย |
|---|---|
| แองเคอร์ | |
| ^ | (คาเร็ต) จับคู่จุดเริ่มต้นของบรรทัดหรือสตริงข้อความที่นิพจน์ทั่วไปนั้นจะค้นหา เช่น กฎเนื้อหาที่มีบรรทัดหัวเรื่องตำแหน่งและนิพจน์ทั่วไปต่อไปนี้ ^abc จะบันทึกข้อความอีเมลใดก็ได้ที่มีบรรทัดหัวเรื่องที่ขึ้นต้นด้วยตัวอักษร abc |
| $ | (ดอลลาร์) จับคู่ท้ายบรรทัดหรือสตริงข้อความที่นิพจน์ทั่วไปนั้นจะค้นหา เช่น กฎเนื้อหาที่มีบรรทัดหัวเรื่องตำแหน่งและนิพจน์ทั่วไปต่อไปนี้ xyz$ จะบันทึกข้อความอีเมลที่มีบรรทัดหัวเรื่องที่ลงท้ายด้วยตัวอักษร xyz |
| อักขระเมตา | |
| (จุด) จับคู่อักขระตัวเดียว ยกเว้นอักขระขึ้นบรรทัดใหม่ | |
| | | (ไปป์) แสดงถึงค่าที่สลับกันได้ ซึ่งก็คือ "หรือ" เช่น cat|dog จะจับคู่กับคําว่า cat หรือ dog |
| \ | ระบุว่าอักขระถัดไปเป็นอักขระตามจริง แทนที่จะเป็นอักขระพิเศษ เช่น \. จะจับคู่กับจุดทศนิยม ไม่ใช่อักขระใดๆ (อักขระจุด) |
| ชั้นของอักขระ | |
| [...] | จับคู่อักขระใดก็ได้จากชุดของอักขระ คั่นอักขระตัวแรกและตัวสุดท้ายด้วยเครื่องหมายขีดกลาง เช่น [123] จะจับคู่กับตัวเลข 1, 2 หรือ 3 [a-f] จะจับคู่กับอักขระใดๆ ก็ตามตั้งแต่ a จนถึง f หมายเหตุ: นิพจน์ทั่วไปในนโยบายการปฏิบัติตามข้อกำหนดของเนื้อหาจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
| [^...] | จับคู่อักขระใดก็ได้ที่ไม่อยู่ในชุดของอักขระ เช่น [^a-f]จะจับคู่กับอักขระใดๆ ก็ตามที่ไม่ใช่ a ถึง f หมายเหตุ: นิพจน์ทั่วไปในนโยบายการปฏิบัติตามข้อกำหนดของเนื้อหาจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
| [:alnum:] | จับคู่อักขระที่เป็นตัวอักษรและตัวเลขคละกัน (ตัวอักษรหรือตัวเลข): a-z, A-Z หรือ 0-9 หมายเหตุ: ชั้นอักขระนี้จะต้องอยู่ในวงเล็บเหลี่ยมอีกชุดหนึ่งเมื่อใช้ในนิพจน์ทั่วไป เช่น [[:alnum:]] |
| [:alpha:] | จับคู่อักขระที่เป็นตัวอักษร (ตัวอักษร): a-z หรือ A-Z หมายเหตุ: ชั้นอักขระนี้จะต้องอยู่ในวงเล็บเหลี่ยมอีกชุดหนึ่งเมื่อใช้ในนิพจน์ทั่วไป เช่น [[:alpha:]] |
| [:digit:] | จับคู่ตัวเลข: 0-9 หมายเหตุ: ชั้นอักขระนี้จะต้องอยู่ในวงเล็บเหลี่ยมอีกชุดหนึ่งเมื่อใช้ในนิพจน์ทั่วไป เช่น [[:digit:]] |
| [:graph:] | จับคู่อักขระที่ปรากฏเท่านั้น หมายถึงอักขระทั้งหมดยกเว้นอักขระเว้นวรรค อักขระควบคุม และอื่นๆ หมายเหตุ: ชั้นอักขระนี้จะต้องอยู่ในวงเล็บเหลี่ยมอีกชุดหนึ่งเมื่อใช้ในนิพจน์ทั่วไป เช่น [[:graph:]] |
| [:punct:] | จับคู่อักขระเครื่องหมายวรรคตอนและสัญลักษณ์ ได้แก่ ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } หมายเหตุ: ชั้นอักขระนี้จะต้องอยู่ในวงเล็บเหลี่ยมอีกชุดหนึ่งเมื่อใช้ในนิพจน์ทั่วไป เช่น [[:punct:]] |
| [:print:] | จับคู่อักขระที่ปรากฏและอักขระเว้นวรรค หมายเหตุ: ชั้นอักขระนี้จะต้องอยู่ในวงเล็บเหลี่ยมอีกชุดหนึ่งเมื่อใช้ในนิพจน์ทั่วไป เช่น [[:print:]] |
| [:space:] | จับคู่อักขระที่เป็นการเว้นช่องว่างทั้งหมด รวมถึงอักขระเว้นวรรค แท็บ และการขึ้นบรรทัดใหม่ หมายเหตุ: ชั้นอักขระนี้จะต้องอยู่ในวงเล็บเหลี่ยมอีกชุดหนึ่งเมื่อใช้ในนิพจน์ทั่วไป เช่น [[:space:]] |
| [:word:] | จับคู่อักขระใดก็ได้ของคำ ซึ่งก็คือตัวอักษร ตัวเลข หรือขีดล่าง: a-z, A-Z, 0-9 หรือ _ หมายเหตุ: ชั้นอักขระนี้จะต้องอยู่ในวงเล็บเหลี่ยมอีกชุดหนึ่งเมื่อใช้ในนิพจน์ทั่วไป เช่น [[:word:]] |
| ชั้นอักขระแบบย่อ | |
| \w | จับคู่อักขระใดก็ได้ของคํา ซึ่งก็คือตัวอักษร ตัวเลข หรือขีดล่าง a-z, A-Z, 0-9 หรือ _ เทียบเท่ากับ [:word:] |
| \W | จับคู่อักขระทั้งหมดที่ไม่ประกอบเป็นคำ ได้แก่ อักขระที่ไม่ใช่ตัวอักษร ตัวเลข หรือเครื่องหมายขีดล่าง เทียบเท่ากับ [^[:word:]] |
| \s | จับคู่อักขระที่เป็นการเว้นช่องว่างทั้งหมด เช่น ใช้อักขระนี้เพื่อระบุการเว้นวรรคระหว่างคำในวลี stockstips จับคู่กับวลี stock tips เทียบเท่ากับ [:space:] |
| \S | จับคู่กับอักขระทั้งหมดที่ไม่ใช่การเว้นช่องว่าง เทียบเท่ากับ [^[:space:]] |
| \d | จับคู่ตัวเลขใดก็ได้ตั้งแต่ 0-9 เทียบเท่ากับ [:digit:] |
| \D | จับคู่อักขระทั้งหมดที่ไม่ใช่ตัวเลขตั้งแต่ 0-9 เทียบเท่ากับ [^[:digit:]] |
| กลุ่ม | |
| (...) | จัดกลุ่มส่วนต่างๆ ของนิพจน์ ใช้การจัดกลุ่มเพื่อใช้ตัวขยายกับกลุ่ม หรือเพื่อจับคู่ชั้นอักขระก่อนหรือหลังกลุ่ม |
| ตัวขยาย | |
| {n} | จับคู่นิพจน์ที่อยู่ก่อนหน้าเป็นจำนวน n ครั้ง เช่น [a-c]{2} จะจับคู่ตัวอักษรใดก็ได้ตั้งแต่ a ถึง c เฉพาะเมื่อมีตัวอักษร 2 ตัวปรากฏขึ้นติดต่อกัน ดังนั้น นิพจน์นี้จะจับคู่ ab และ bc แต่ไม่จับคู่ abc หรือ aabbc |
| {n,m} | จับคู่นิพจน์ที่อยู่ก่อนหน้าอย่างน้อย n ครั้ง และไม่เกิน m ครั้ง เช่น [a-c]{2,4} จะจับคู่ตัวอักษรใดก็ได้ตั้งแต่ a ถึง c เฉพาะเมื่อตัวอักษรเหล่านั้นปรากฏขึ้นอย่างน้อย 2 ครั้ง โดยต้องไม่เกิน 4 ครั้งติดต่อกัน ดังนั้น นิพจน์นี้จะจับคู่ ab และ abc แต่ไม่จับคู่ aabbc |
| ? | ระบุว่าสามารถจับคู่อักขระหรือนิพจน์ที่อยู่ก่อนหน้า 0 หรือ 1 ครั้งก็ได้ เทียบเท่ากับช่วง {0,1} เช่น นิพจน์ทั่วไปต่อไปนี้ colou?r จะจับคู่กับ colour หรือ color เนื่องจาก ? ทำให้มีตัวอักษร u หรือไม่ก็ได้ |