Mastering Regex: Essential Patterns for Numbers, Text, and Special Formats
This article compiles a comprehensive collection of regular expression patterns for validating numeric values, character strings, and various special formats such as emails, URLs, phone numbers, dates, IP addresses, and more, providing ready‑to‑use code snippets for developers.
Number Validation Expressions
Digits: ^[0-9]*$ Exactly n digits: ^\d{n}$ At least n digits: ^\d{n,}$ m‑n digits: ^\d{m,n}$ Zero or non‑zero leading numbers: ^(0|[1-9][0-9]*)$ Non‑zero leading number with up to two decimal places: ^([1-9][0-9]*)+(.[0-9]{1,2})?$ Positive or negative number with optional 1‑2 decimal places: ^(\-)?\d+(\.\d{1,2})?$ Signed integer or decimal: ^(\-|\+)?\d+(\.\d+)?$ Positive real number with two decimal places: ^[0-9]+(.[0-9]{2})?$ Positive real number with 1‑3 decimal places: ^[0-9]+(.[0-9]{1,3})?$ Non‑zero positive integer: ^[1-9]\d*$ or ^([1-9][0-9]*){1,3}$ or ^\+?[1-9][0-9]*$ Non‑zero negative integer: ^-\[1-9][]0-9"*$ or ^-[1-9]\d*$ Non‑negative integer: ^\d+$ or ^[1-9]\d*|0$ Non‑positive integer: ^-[1-9]\d*|0$ or ^((‑\d+)|(0+))$ Non‑negative floating‑point number: ^\d+(\.\d+)?$ or ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ Non‑positive floating‑point number: ^((‑\d+(\.\d+)?)|(0+(\.0+)?))$ or ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ Positive floating‑point number: ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ or
(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$Negative floating‑point number: ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ or
(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$General floating‑point number: ^(-?\d+)(\.\d+)?$ or
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$Character Validation Expressions
Chinese characters: ^[\u4e00-\u9fa5]{0,}$ Alphanumeric (4‑40 chars): ^[A-Za-z0-9]+$ or ^[A-Za-z0-9]{4,40}$ Any characters, length 3‑20: ^.{3,20}$ Only letters: ^[A-Za-z]+$ Only uppercase letters: ^[A-Z]+$ Only lowercase letters: ^[a-z]+$ Alphanumeric only: ^[A-Za-z0-9]+$ Alphanumeric or underscore: ^\w+$ or ^\w{3,20} Chinese, letters, digits, underscore: ^[\u4E00-\u9FA5A-Za-z0-9_]+$ Chinese, letters, digits (no underscore): ^[\u4E00-\u9FA5A-Za-z0-9]+$ or ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$ Allow specific symbols (%&',;=?$): [^%&',;=?$\x22]+ Disallow tilde (~):
[^~\x22]+Other Useful Patterns
Match any character except newline: .* Match Chinese characters: /[\u4E00-\u9FA5]/ Match full‑width symbols:
/[\uFF00-\uFFFF]/Special‑Purpose Expressions
Email address: ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ Domain name:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?Internet URL: [a-zA-z]+://[^\s]* or ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ Mobile phone (China): ^(13[0-9]|14[5|7]|15[0-9]|18[0-9])\d{8}$ Phone number (various formats): ^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$ Domestic phone (e.g., 0511-4405222): \d{3}-\d{8}|\d{4}-\d{7} Identity card (15 or 18 digits): ^\d{15}|\d{18}$ Short ID (digits, optional trailing x): ^([0-9]){7,18}(x|X)?$ or ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$ Username (letter start, 5‑16 chars, letters/digits/underscore): ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ Password (letter start, 6‑18 chars, letters/digits/underscore): ^[a-zA-Z]\w{5,17}$ Strong password (8‑10 chars, must include upper, lower, digit): ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ Date (yyyy‑mm‑dd, leap‑year aware):
^((?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$Month (01‑12): ^(0?[1-9]|1[0-2])$ Day of month (01‑31): ^((0?[1-9])|((1|2)[0-9])|30|31)$ Money formats (various): ^[1-9][0-9]*$, ^(0|[1-9][0-9]*)$, ^(0|-?[1-9][0-9]*)$, ^[0-9]+(.[0-9]+)?$, ^[0-9]+(.[0-9]{2})?$, ^[0-9]+(.[0-9]{1,2})?$, ^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$, ^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$ XML file name: ^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[xX][mM][lL]$ Chinese character regex: [\u4e00-\u9fa5] Double‑byte character: [^\x00-\xff] Blank line: \n\s*\r HTML tag: <(\S*?)[^>]*>.*?</\1>|<.*? /> Trim leading/trailing whitespace: ^\s*|\s*$ or (^\s*)|(\s*$) QQ number: [1-9][0-9]{4,} Chinese postal code: [1-9]\d{5}(?!\d) IPv4 address: \d+\.\d+\.\d+\.\d+ IPv4 (full validation):
((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))IPv6 address:
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))Subnet mask:
((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))Extract comments: <!--(.*?)--> Find CSS property: ^\s*[a-zA-Z\-]+\s*[:]{1}\s[a-zA-Z0-9\s.#]+[;]{1} Extract page hyperlinks:
(<a\s*(?!.*\brel=)[^>]*)(href="https?:\/\/)((?!(?:(?:www\.)?'.implode('|(?:www\.)?', $follow_list).'))[^" rel="external nofollow" ]+)")Extract page images: \\< *[img][^\\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*) Extract color codes: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ File extension validation (txt): ^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.txt(l)?$ IE version detection:
^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/[5-9]\.0).*$References
https://www.runoob.com/regexp/regexp-tutorial.html
Online regex tester: http://tool.oschina.net/regex/
Note: The final result can use + or * as alternatives; remember to remove the escaping backslash when using the function.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Open Source Linux
Focused on sharing Linux/Unix content, covering fundamentals, system development, network programming, automation/operations, cloud computing, and related professional knowledge.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
