R

TestRegex

← Back to Blog

Tutorial: Extracting Data from Server Logs

Server logs generate massive amounts of unstructured text. While tools like Splunk exist, sometimes you just need a quick Python script to parse a log file.

The Power of Named Groups

Instead of relying on numeric indices like group(1), use Named Capture Groups (?<name>...) to make your regex self-documenting.

Parsing an Nginx Log Line

127.0.0.1 - - [10/Oct/2000:13:55:36 -0700] "GET /index.html HTTP/1.0" 200 2326
^(?<ip>\S+) \S+ \S+ \[(?<timestamp>.*?)\] "(?<method>\S+) (?<path>\S+) \S+" (?<status>\d{3}) (?<bytes>\d+)

In Python or JS, you can now access these fields directly by name (e.g., match.groups.ip), making your code infinitely more readable.