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

1

Regular Expression
Created·2026-07-05 22:53
Flavor·PCRE2 (PHP)

/
(?(DEFINE) (?<token> (?&identifier) | (?&boolean) | (?&number) | (?&character) | (?&string) | [()'`.] | \#(?:u8)?\( | ,@? ) (?<delimiter> (?&whitespace) | (?&vertical_line) | [()";] | $ ) (?<intraline_whitespace> [ \t] ) (?<whitespace> (?&intraline_whitespace) | (?&line_ending) ) (?<vertical_line> \| ) (?<line_ending> \n | \r\n? ) (?<comment> ;.*+ # all subsequent characters up to a line ending | (?&nested_comment) | \#; (?&intertoken_space) (?&datum) ) (?<nested_comment> \#\| (?&comment_text) (?&comment_cont)*+ \|\# ) (?<comment_text> # character sequence not including #| or |# (?: [^#|] | \#[^|] | \|[^#] )*+ ) (?<comment_cont> (?&nested_comment) (?&comment_text) ) (?<directive> \#!(?:no-)fold-case (?=(?&delimiter)) ) (?<atmosphere> (?&whitespace) | (?&comment) | (?&directive) ) (?<intertoken_space> (?&atmosphere)*+ ) (?<identifier> (?&initial) (?&subsequent)*+ | (?&vertical_line) (?&symbol_element)*+ (?&vertical_line) | (?&peculiar_identifier) ) (?<initial> (?&letter) | (?&special_initial) ) (?<letter> [a-zA-Z] ) (?<special_initial> [!$%&*\/:<=>?^_~] ) (?<subsequent> (?&initial) | (?&digit) | (?&special_subsequent) ) (?<digit> [0-9] ) (?<hex_digit> [0-9a-fA-F] ) (?<explicit_sign> [+-] ) (?<special_subsequent> (?&explicit_sign) | [.@] ) (?<inline_hex_escape> \\x(?&hex_scalar_value) ) (?<hex_scalar_value> [0-9a-fA-F]++ ) (?<mnemonic_escape> \\[abtnr] ) (?<peculiar_identifier> (?&explicit_sign) | (?&explicit_sign) (?&sign_subsequent) (?&subsequent)*+ | (?&explicit_sign)? \. (?&dot_subsequent) (?&subsequent)*+ ) (?<dot_subsequent> (?&sign_subsequent) | \. ) (?<sign_subsequent> (?&initial) | (?&explicit_sign) | @ ) (?<symbol_element> [^|\\] # any character other than vertical line or backslash | (?&inline_hex_escape) | (?&mnemonic_escape) | \\ \| ) (?<boolean> \#t(?:rue)? | \#f(?:alse)? ) (?<character> \# \\ (?: (?&character_name) | x (?&hex_scalar_value) | . | (?&line_ending) ) ) (?<character_name> alarm | backspace | delete | escape | newline | null | return | space | tab ) (?<string> " (?&string_element)* " ) (?<string_element> [^"\\] # any character other than " or \ | (?&mnemonic_escape) | \\ (?: [\\"] | (?&intraline_whitespace)* (?&line_ending) (?&intraline_whitespace)* ) | (?&inline_hex_escape) ) (?<bytevector> \#u8\( (?&ws)? (?: (?&byte) (?&ws) )* \) ) (?<byte> (?> (?: # any exact integer between 0 and 255 (?&prefix_2) 0* (?&digit_2){1,8} | (?&prefix_16) 0* (?&digit_16){1,2} | (?&prefix_8) 0* (?: 0 | [1-3] (?&digit_8){0,2} | [4-7](?&digit_8)? ) | (?&prefix_10) 0* (?: [0-9]{1,2} | 1 [0-9]{2} | 2 (?: [0-4][0-9] | 5[0-5] ) ) ) (?=(?&delimiter)) ) ) (?<number> (?&num_2) | (?&num_8) | (?&num_16) | (?&num_10) ) # the number stack (?<num_2> (?&prefix_2) (?&complex_2) ) (?<num_8> (?&prefix_8) (?&complex_8) ) (?<num_10> (?&prefix_10) (?&complex_10) ) (?<num_16> (?&prefix_16) (?&complex_16) ) (?<complex_2> (?&real_2) (?: @ (?&real_2) | [+-] (?&ureal_2)? i | (?&infnan) i | )? | [+-] (?&ureal_2)? i | (?&infnan) i ) (?<complex_8> (?&real_8) (?: @ (?&real_8) | [+-] (?&ureal_8)? i | (?&infnan) i | )? | [+-] (?&ureal_8)? i | (?&infnan) i ) (?<complex_10> (?&real_10) (?: @ (?&real_10) | [+-] (?&ureal_10)? i | (?&infnan) i | )? | [+-] (?&ureal_10)? i | (?&infnan) i ) (?<complex_16> (?&real_16) (?: @ (?&real_16) | [+-] (?&ureal_16)? i | (?&infnan) i | )? | [+-] (?&ureal_16)? i | (?&infnan) i ) (?<real_2> (?&sign) (?&ureal_2) | (?&infnan) ) (?<real_8> (?&sign) (?&ureal_8) | (?&infnan) ) (?<real_10> (?&sign) (?&ureal_10) | (?&infnan) ) (?<real_16> (?&sign) (?&ureal_16) | (?&infnan) ) (?<ureal_2> (?&uinteger_2) (?: \/ (?&uinteger_2) )? ) (?<ureal_8> (?&uinteger_8) (?: \/ (?&uinteger_8) )? ) (?<ureal_10> (?&uinteger_10) (?: \/ (?&uinteger_10) )? | (?&decimal_10) ) (?<ureal_16> (?&uinteger_16) (?: \/ (?&uinteger_16) )? ) (?<decimal_10> (?&uinteger_10) (?: \. (?&digit_10)++ )? (?&suffix) | \. (?&digit_10)++ (?&suffix) ) (?<uinteger_2> [01]++ ) (?<uinteger_8> [0-7]++ ) (?<uinteger_10> [0-9]++ ) (?<uinteger_16> [0-9a-fA-F]++ ) (?<prefix_2> (?&radix_2) (?&exactness) | (?&exactness) (?&radix_2) ) (?<prefix_8> (?&radix_8) (?&exactness) | (?&exactness) (?&radix_8) ) (?<prefix_10> (?&radix_10) (?&exactness) | (?&exactness) (?&radix_10) ) (?<prefix_16> (?&radix_16) (?&exactness) | (?&exactness) (?&radix_16) ) (?<infnan> [+-] (?: inf | nan ) \. 0 ) (?<suffix> (?: (?&exponent_marker) (?&sign) (?&digit_10)++ )? ) (?<exponent_marker> e ) (?<sign> [+-]? ) (?<exactness> (?:\#[ieIE])? ) (?<radix_2> \#[bB] ) (?<radix_8> \#[oO] ) (?<radix_10> (?: \#[dD] )? ) (?<radix_16> \#[xX] ) (?<digit_2> [01] ) (?<digit_8> [0-7] ) (?<digit_10> [0-9] ) (?<digit_16> [0-9a-fA-F] ) ### External Representation (?<datum> (?&simple_datum) | (?&compound_datum) | (?&label) (?: = (?&datum) | \# ) ) (?<simple_datum> (?&boolean) | (?&number) | (?&character) | (?&string) | (?&symbol) | (?&bytevector) ) (?<symbol> (?&identifier) ) (?<compound_datum> (?&list) | (?&vector) | (?&abbreviation) ) (?<list> \( (?&ws)? (?: (?: (?&datum) (?&ws) )+ (?: \. (?&ws) (?&datum) )? )? \) ) (?<abbreviation> (?&abbrev_prefix) (?&datum) ) (?<abbrev_prefix> ['`] | ,@? ) (?<vector> \#\( (?&ws)? (?: (?&datum) (?: (?&ws) (?&datum) )* (?&ws)? \) ) (?<label> \# (?&uinteger_10) ) (?<ws> \s++ (?: (?&comment) \s*+ )*+ | (?= [()";|] | $ ) ) ) ) (?&datum)
/
gxui
Open regex in editor

Description

Matches Scheme programs as described by https://small.r7rs.org/attachment/r7rs.pdf

Submitted by stellartux