Regular Expressions 101

Community Patterns

1

ตรวจสอบพยัญชนะต้นตัวสะกดสระและวรรณยุกต์ไทย

Created·2026-01-22 01:36
Updated·2026-01-23 12:42
Flavor·JavaScript
ตรวจสอบพยัญชนะต้น (ต้องมี) ตรวจตัวสะกดสำหรับสระที่ต้องมี ตรวจสอบการวางสระและวรรณยุกต์ไทย หมายเหตุ การตรวจสอบตัวสะกดในภาษาไทยตรวจสอบได้ยากเพราะภาษาไทยเป็นภาษาที่เขียนติด ๆ กันไม่มีการแบ่งคำอย่างชัดเจนทำให้การอ่านภาษาไทยผู้อ่านต้องใช้ความหมายของคำในการตัดสินการอ่านแบ่งคำตามความเหมาะสมเช่นคำว่า "ตากลม" อาจอ่านเป็น "ตาก-ลม" ก็ได้ หรืออ่านเป็น "ตา-กลม"ก็ได้ ดังนั้นการเขียน Regex เพื่อทำการตรวจสอบอาจช่วยได้ระดับหนึ่ง อ่าจมีผิดบ้างถูกบ้าง แต่ก็ถือว่าเป็นเครื่องมือที่ใช้ช่วยเหลือในการตรวจสอบเพิ่มเติมได้ 80% ของความเป็นไปใด้ก็แล้วกันนะครับ หวังว่าการเขียนเพิ่มเติมส่วนนี้ จะมีประโยชน์บ้างไม่มากก็น้อย
Submitted by อธิปัตย์ ล้อวงศ์งาม
1

Regex for Matching Documentation Websites

Created·2024-11-24 01:45
Flavor·JavaScript
Regex for Matching Documentation Websites This repository contains a powerful regular expression designed to match URLs that commonly point to documentation-related websites. The regex is optimized for flexibility, covering various terms and URL patterns. Regex Pattern ^.(?:\.|\/)(docs|documentation|help|guide|manual|reference|api|kb|support|resources|wiki|developer|how-to|tutorials|examples|learn|instructions)(?:\.|\/)?.$ Purpose This regex is intended to identify URLs that contain keywords associated with documentation or support websites. It handles common patterns in subdomains, directories, and file paths. Explanation ^.*: Matches any characters at the beginning of the URL (any prefix). (?:\.|\/): Matches either a period (.) or a forward slash (/) preceding the keyword. (docs|documentation|help|guide|manual|...): Matches any of the keywords listed in the group. (?:\.|\/)?: Allows an optional period (.) or forward slash (/) following the keyword. .*$: Matches any characters following the keyword (any suffix). Examples Positive Examples The following URLs should match the regex: https://example.com/docs http://docs.example.com https://example.com/documentation https://sub.domain.com/docs/index.html https://example.com/help https://api.example.com/docs http://example.com/manual/index.html https://wiki.example.com http://developer.example.com/guide https://example.com/tutorials/docs/page https://kb.example.com/docs/tutorial.html https://example.com/resources/documentation/tutorial.html http://example.com/reference/help/documentation.html https://developer.example.com/docs/tutorials/index.html http://support.example.com/documentation/overview https://resources.example.com/docs/v1/tutorial https://example.com/how-to/documentation http://example.com/api/reference/docs https://example.com/reference/v2/index.html http://example.com/docs/resources/api.html Negative Examples The following URLs should not match the regex: https://example.com/documentary http://helpful.example.com https://manuals.example.com http://example.com/references https://example.com/resourceful http://example.com/wiki-books https://apiary.example.com http://example.com/documents http://example.com/documentable https://help-center.example.com http://manual.example.com/docsystem https://example.com/resourcesful http://api.example.comary https://example.net/instructions-v1 http://example.org/learned-tutorial http://example.com/support-center Author Jeremy Georges-Filteau Website Github
Submitted by jgeofil

Community Library Entry

0

Regular Expression
Created·2023-05-14 02:35
Updated·2024-11-07 00:33
Flavor·PCRE2 (PHP)

/
^( # Match only leap years \d\d[2468][048] # multiple of four but not 100 |\d\d[13579][26] # ... |\d\d0[48] # ... |[02468][048]00 # multiple of four hundred |[13579][26]00 # ... )$
/
gmux
Open regex in editor

Description

This will match all four-digit years that are leap years, using the "either (multiple of four but not a multiple of 100) OR (multiple of 400)" rule.

Explained

/
^(
  \d\d[2468][048]|\d\d[13579][26]|\d\d0[48]| # multiple of four but not 100
     [02468][048]00  |[13579][26]00          # multiple of four hundred
)$
/gmx

References

Test Cases

//	accept: multiple of four ()
0004
0008
0012
0016
0020
0024
0028
0032
0036
0040
0044
0048
0052
0056
0060
0064
0068
0072
0076
0080
0084
0088
0092
0096
1560
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
9996
//	accept: Multiple of 400
0000
0400
0800
1200
1600
2000
2400
2800
3200
3600
4000
4400
4800
5200
5600
6000
6400
6800
7200
7600
8000
8400
8800
9200
9600
//	REJECT: Not a multiple of four
0101
0102
0103
1537
1538
2001
2002
2003
2021
2022
2023
2025
2026
2027
2029
2030
2031
2033
2034
2035
2037
2038
2039
2041
2042
2043
9997
9998
9999
//	REJECT: Multiple of 100 but not 400
0100
0200
0300
0500
0600
0700
0900
1000
1100
1500
2100
2200
2300
2500
2600
2700
2900
3000
3100
3300
3400
3500
3700
//	REJECT: Negative dates not accepted (malformed)
-2000
-0400
-0100
-0004
//	REJECT: Out of range date per RFC 3339
10000
Submitted by Philip Flip Kromer