master
yaml 41 lines 1.13 KB
Raw
1 ---
2 # Advanced PCRE2 complex patterns test
3 # Tests complex named groups, nested patterns, edge cases
4
5 pattern: |
6 (?x) # Extended mode
7 ^
8 (?<timestamp>\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z) \s+
9 \[(?<thread_id>\d+)\] \s+
10 (?<level>DEBUG|INFO|WARN|ERROR|FATAL) \s+
11 (?<logger_name>[a-zA-Z0-9._-]+) \s+ - \s+
12 (?<message>
13 (?:User \s+ (?<user_name>\w+) \s+)? # Optional user
14 (?:Action: \s+ (?<action>\w+) \s+)? # Optional action
15 (?:Resource: \s+ (?<resource>\S+) \s+)? # Optional resource
16 (?<description>.*) # Remaining message
17 )
18 $
19
20 inject:
21 - key: LOG_PROCESSOR
22 value: "advanced-pcre2"
23
24 rewrite:
25 # Test complex variable substitution with nested groups
26 - key: STRUCTURED_MESSAGE
27 value: "ts=${timestamp} level=${level} logger=${logger_name}"
28 inject: yes
29
30 # Test conditional processing based on captured groups
31 - key: USER_ACTION
32 value: "${user_name}:${action}:${resource}"
33 inject: yes
34
35 # Test processing optional groups (may be empty)
36 - key: HAS_USER
37 value: "checked"
38 inject: yes
39
40 filename:
41 key: FILENAME