Skip to content

Commit 5f116ec

Browse files
committed
Cleanup non essential regex patterns
1 parent 45c0826 commit 5f116ec

File tree

6 files changed

+161
-252
lines changed

6 files changed

+161
-252
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2121

2222
### Removed
2323
- Group description option.
24+
- Cleanup non essential regex patterns.
2425

2526

2627
## [0.1.0] - 2025-07-02

docs/docs/api-reference/regex-patterns.md

Lines changed: 5 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,22 @@ OPTION_STRING('e', "email", HELP("Email address"),
2222
| Pattern | Validates | Example |
2323
|---------|-----------|---------|
2424
| `ARGUS_RE_IPV4` | IPv4 addresses | `192.168.1.1` |
25-
| `ARGUS_RE_IP4CIDR` | IPv4 with optional CIDR | `192.168.1.0/24` |
2625
| `ARGUS_RE_IPV6` | IPv6 addresses | `2001:db8::1` |
2726
2827
```c
2928
OPTION_STRING('i', "ip", HELP("Server IP address"),
3029
VALIDATOR(V_REGEX(ARGUS_RE_IPV4)))
3130
32-
OPTION_STRING('n', "network", HELP("Network range"),
33-
VALIDATOR(V_REGEX(ARGUS_RE_IP4CIDR)))
3431
```
3532

3633
### Network Infrastructure
3734

3835
| Pattern | Validates | Example |
3936
|---------|-----------|---------|
40-
| `ARGUS_RE_MAC` | MAC addresses | `01:23:45:67:89:AB` |
4137
| `ARGUS_RE_DOMAIN` | Domain names (FQDN) | `example.com` |
4238
| `ARGUS_RE_PORT` | Port numbers (1-65535) | `8080` |
4339

4440
```c
45-
OPTION_STRING('m', "mac", HELP("MAC address"),
46-
VALIDATOR(V_REGEX(ARGUS_RE_MAC)))
47-
4841
OPTION_STRING('d', "domain", HELP("Domain name"),
4942
VALIDATOR(V_REGEX(ARGUS_RE_DOMAIN)))
5043
```
@@ -55,7 +48,6 @@ OPTION_STRING('d', "domain", HELP("Domain name"),
5548
|---------|-----------|---------|
5649
| `ARGUS_RE_URL` | Any protocol URL | `https://example.com/path` |
5750
| `ARGUS_RE_HTTP` | HTTP(S) URLs only | `http://example.com` |
58-
| `ARGUS_RE_FILE_URL` | File URLs | `file:///path/to/file` |
5951
6052
```c
6153
OPTION_STRING('u', "url", HELP("Website URL"),
@@ -82,78 +74,44 @@ OPTION_STRING('c', "contact", HELP("Contact email (strict)"),
8274
VALIDATOR(V_REGEX(ARGUS_RE_EMAIL_STRICT)))
8375
```
8476
85-
### Phone Numbers
86-
87-
| Pattern | Validates | Example |
88-
|---------|-----------|---------|
89-
| `ARGUS_RE_PHONE_INTL` | International format | `+12345678901` |
90-
| `ARGUS_RE_PHONE_US` | US phone numbers | `123-456-7890` |
91-
| `ARGUS_RE_PHONE_EU` | European phone numbers | `+33 123456789` |
92-
93-
```c
94-
OPTION_STRING('p', "phone", HELP("Phone number"),
95-
VALIDATOR(V_REGEX(ARGUS_RE_PHONE_US)))
96-
```
9777
9878
## // Date and Time Patterns
9979
10080
| Pattern | Validates | Example |
10181
|---------|-----------|---------|
10282
| `ARGUS_RE_ISO_DATE` | ISO date (YYYY-MM-DD) | `2024-03-15` |
10383
| `ARGUS_RE_ISOTIME` | ISO datetime | `2024-03-15T14:30:00` |
104-
| `ARGUS_RE_US_DATE` | US date format | `03/15/2024` |
105-
| `ARGUS_RE_EU_DATE` | European date format | `15/03/2024` |
106-
| `ARGUS_RE_TIME24` | 24-hour time | `14:30:00` |
10784
10885
```c
10986
OPTION_STRING('d', "date", HELP("Date (YYYY-MM-DD)"),
11087
VALIDATOR(V_REGEX(ARGUS_RE_ISO_DATE)))
11188
112-
OPTION_STRING('t', "time", HELP("Time (HH:MM:SS)"),
113-
VALIDATOR(V_REGEX(ARGUS_RE_TIME24)))
89+
OPTION_STRING('t', "datetime", HELP("DateTime (ISO format)"),
90+
VALIDATOR(V_REGEX(ARGUS_RE_ISOTIME)))
11491
```
11592

116-
## // Geographic Patterns
117-
118-
| Pattern | Validates | Example |
119-
|---------|-----------|---------|
120-
| `ARGUS_RE_ZIP` | US ZIP codes | `12345` or `12345-6789` |
121-
| `ARGUS_RE_UK_POST` | UK postcodes | `SW1A 1AA` |
122-
| `ARGUS_RE_CA_POST` | Canadian postal codes | `A1A 1A1` |
123-
| `ARGUS_RE_LATITUDE` | Latitude (-90 to 90) | `40.7128` |
124-
| `ARGUS_RE_LONGITUDE` | Longitude (-180 to 180) | `-74.0060` |
125-
126-
```c
127-
OPTION_STRING('z', "zip", HELP("ZIP code"),
128-
VALIDATOR(V_REGEX(ARGUS_RE_ZIP)))
129-
130-
OPTION_STRING('l', "lat", HELP("Latitude"),
131-
VALIDATOR(V_REGEX(ARGUS_RE_LATITUDE)))
132-
```
13393

13494
## // Security Patterns
13595

13696
| Pattern | Validates | Example |
13797
|---------|-----------|---------|
13898
| `ARGUS_RE_USER` | Username (3-20 chars) | `user_123` |
13999
| `ARGUS_RE_PASSWD` | Basic password | `password123` |
140-
| `ARGUS_RE_PASSWD_STRONG` | Strong password | `Pass123!` |
141100
| `ARGUS_RE_UUID` | UUID v4 format | `550e8400-e29b-41d4-a716-446655440000` |
142101

143102
```c
144103
OPTION_STRING('u', "username", HELP("Username"),
145104
VALIDATOR(V_REGEX(ARGUS_RE_USER)))
146105

147-
OPTION_STRING('p', "password", HELP("Strong password"),
148-
VALIDATOR(V_REGEX(ARGUS_RE_PASSWD_STRONG)))
106+
OPTION_STRING('p', "password", HELP("Password"),
107+
VALIDATOR(V_REGEX(ARGUS_RE_PASSWD)))
149108
```
150109
151110
## // File System Patterns
152111
153112
| Pattern | Validates | Example |
154113
|---------|-----------|---------|
155114
| `ARGUS_RE_UNIX_PATH` | Unix absolute paths | `/path/to/file` |
156-
| `ARGUS_RE_WIN_PATH` | Windows absolute paths | `C:\folder\file` |
157115
| `ARGUS_RE_FILENAME` | Filename with extension | `document.pdf` |
158116
159117
```c
@@ -164,21 +122,7 @@ OPTION_STRING('n', "name", HELP("Filename"),
164122
VALIDATOR(V_REGEX(ARGUS_RE_FILENAME)))
165123
```
166124

167-
## // Visual and Data Patterns
168-
169-
### Colors
170-
171-
| Pattern | Validates | Example |
172-
|---------|-----------|---------|
173-
| `ARGUS_RE_HEX_COLOR` | Hex colors | `#FF0000` or `#F00` |
174-
| `ARGUS_RE_RGB` | RGB color format | `rgb(255,0,0)` |
175-
176-
```c
177-
OPTION_STRING('c', "color", HELP("Hex color"),
178-
VALIDATOR(V_REGEX(ARGUS_RE_HEX_COLOR)))
179-
```
180-
181-
### Numbers and Formats
125+
## // Numbers and Formats
182126

183127
| Pattern | Validates | Example |
184128
|---------|-----------|---------|
@@ -236,7 +180,6 @@ Each pattern includes helpful error hints:
236180

237181
- `ARGUS_RE_EMAIL`: "Enter email: [email protected]"
238182
- `ARGUS_RE_IPV4`: "Enter valid IPv4: 192.168.1.1"
239-
- `ARGUS_RE_PHONE_US`: "Enter US phone: 123-456-7890"
240183
- `ARGUS_RE_ISO_DATE`: "Enter date: YYYY-MM-DD"
241184

242185
Custom patterns should include similar hints:

docs/docs/appendices/cheat-sheet.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ ARGUS_RE_EMAIL // [email protected]
9696
ARGUS_RE_IPV4 // 192.168.1.1
9797
ARGUS_RE_URL // https://example.com
9898
ARGUS_RE_ISO_DATE // 2024-03-15
99-
ARGUS_RE_PHONE_US // 123-456-7890
10099
ARGUS_RE_UUID // 550e8400-e29b-41d4-a716-446655440000
101100
```
102101

docs/docs/features/validation.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,6 @@ ARGUS_OPTIONS(
297297
- `ARGUS_RE_IPV6` - IPv6 addresses
298298
- `ARGUS_RE_URL` - URLs (any protocol)
299299
- `ARGUS_RE_ISO_DATE` - ISO dates (YYYY-MM-DD)
300-
- `ARGUS_RE_PHONE_US` - US phone numbers
301300
- `ARGUS_RE_UUID` - UUID v4 format
302301

303302
</TabItem>

examples/multi_values.c

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,36 @@ ARGUS_OPTIONS(
2626
HELP_OPTION(),
2727
VERSION_OPTION(),
2828

29-
OPTION_ARRAY_STRING('n', "names", HELP("Array of names (e.g., john,alice,bob)")),
30-
OPTION_ARRAY_STRING('w', "words", HELP("Sorted array of words"),
31-
FLAGS(FLAG_SORTED)),
32-
OPTION_ARRAY_INT('i', "ids", HELP("Array of ID numbers or ranges (e.g., 1,2,3-5)"),
33-
FLAGS(FLAG_UNIQUE | FLAG_SORTED)),
34-
OPTION_MAP_STRING('\0', "env", HELP("Environment variables (key=value pairs)"),
35-
FLAGS(FLAG_SORTED_KEY)),
36-
OPTION_MAP_INT('\0', "ports", HELP("Port numbers for services"),
37-
FLAGS(FLAG_UNIQUE_VALUE)),
38-
OPTION_MAP_FLOAT('\0', "scales", HELP("Scaling factors for dimensions"),
39-
FLAGS(FLAG_SORTED_VALUE)),
29+
OPTION_ARRAY_STRING(
30+
'n', "names",
31+
HELP("Array of names (e.g., john,alice,bob)"),
32+
VALIDATOR(V_COUNT(0, 3))
33+
),
34+
OPTION_ARRAY_STRING(
35+
'w', "words",
36+
HELP("Sorted array of words"),
37+
FLAGS(FLAG_SORTED)
38+
),
39+
OPTION_ARRAY_INT(
40+
'i', "ids",
41+
HELP("Array of ID numbers or ranges (e.g., 1,2,3-5)"),
42+
FLAGS(FLAG_UNIQUE | FLAG_SORTED)
43+
),
44+
OPTION_MAP_STRING(
45+
'\0', "env",
46+
HELP("Environment variables (key=value pairs)"),
47+
FLAGS(FLAG_SORTED_KEY)
48+
),
49+
OPTION_MAP_INT(
50+
'\0', "ports",
51+
HELP("Port numbers for services"),
52+
FLAGS(FLAG_UNIQUE_VALUE)
53+
),
54+
OPTION_MAP_FLOAT(
55+
'\0', "scales",
56+
HELP("Scaling factors for dimensions"),
57+
FLAGS(FLAG_SORTED_VALUE)
58+
),
4059
)
4160

4261
int main(int argc, char **argv)

0 commit comments

Comments
 (0)