📘 C# Blog Series – Blog 47 **“C# Regex — GPS Packets, Protocol Parsing, Validation का सबसे Powerful Tool

📘 C# Blog Series – Blog 47

**“C# Regex — GPS Packets, Protocol Parsing, Validation का सबसे Powerful Tool






(Real-Life Example: IMEI Extraction, GPS Packet Parsing, Data Validation)”**

Regex (Regular Expressions) C# का सबसे तेज़,
सबसे compact, और
सबसे smart text-processing tool है।

GPS Tracking Server में Regex इतनी power देता है कि:

  • IMEI extract

  • Latitude / Longitude निकालना

  • GPS packet format validate

  • Command response match

  • Alerts detect

  • Protocol parse

  • Unknown packets filter

सब कुछ कुछ ही lines में हो जाता है।

आज हम Regex को आसान भाषा + आपके G17/S15 जैसे GPS devices के real scenarios के साथ सीखेंगे।


🟦 1. Regex क्या होता है? (Simple Definition)

Regex =
Text search और pattern matching का सबसे powerful तरीका।

Example:
IMEI निकालना:

861128068064267

Regex:

\d{15}

मतलब:
15 digits → IMEI मिल जाएगा।


🟢 2. Regex Basics in C#

Namespace:

using System.Text.RegularExpressions;

Matching:

Regex.Match(text, pattern);

3. IMEI निकालना (Real GPS Example)

Packet:

##,imei:861128068064267,A;

Regex:

var match = Regex.Match(packet, @"imei:(\d{15})"); string imei = match.Groups[1].Value;

Instant extraction!
No splitting needed.


🌟 4. Latitude–Longitude Extract (Real Packet Example)

Packet:

lat:26.8543;lon:80.9465;speed:45;

Regex:

var lat = Regex.Match(pkt, @"lat:(\-?\d+\.?\d*)").Groups[1].Value; var lon = Regex.Match(pkt, @"lon:(\-?\d+\.?\d*)").Groups[1].Value;

GPS coordinates clean निकाल सकते हो।


🟠 5. Full Packet Parsing – Regex के साथ आसान

Packet example:

imei:861128068064267,lat:26.85,lon:80.94,speed:45,bat:89;

Regex:

var pattern = @"imei:(\d+),lat:(\-?\d+\.?\d*),lon:(\-?\d+\.?\d*),speed:(\d+),bat:(\d+)"; var m = Regex.Match(pkt, pattern); var dev = new GPSDevice { IMEI = m.Groups[1].Value, Latitude = double.Parse(m.Groups[2].Value), Longitude = double.Parse(m.Groups[3].Value), Speed = int.Parse(m.Groups[4].Value), Battery = int.Parse(m.Groups[5].Value) };

यह packet parser industry-standard है।


🔵 6. Packet Validation (Check if packet is valid)

bool isValid = Regex.IsMatch(pkt, @"imei:\d{15}");

अगर false → packet unknown/dummy है।

GPS servers में यह security feature है।


🟣 7. Alert Detection Example

Text:

SOS,imei:861128068064267

Regex:

Regex.IsMatch(pkt, @"SOS")

or more strict:

Regex.IsMatch(pkt, @"^SOS")

🔥 8. Speed Alerts (Overspeed Detection)

Regex.Match(pkt, @"speed:(\d+)").Groups[1].Value

Then:

if(speed > 70) RaiseAlert("Overspeed");

🧠 9. Regex Replace — Clean packets

string clean = Regex.Replace(pkt, @"\s+", "");

Whitespace remove → packet perfect।


📌 10. Regex Options (Very Useful)

RegexOptions.IgnoreCase RegexOptions.Multiline RegexOptions.Compiled

Compiled Regex → fastest performance
Must for high-frequency packet parsing.

Example:

Regex imeiRegex = new Regex(@"imei:(\d{15})", RegexOptions.Compiled);

Now thousands packets per sec → कोई समस्या नहीं।


🧪 11. Multiple Values Extract (Example: All numbers)

var matches = Regex.Matches(pkt, @"\d+"); foreach(Match m in matches) { Console.WriteLine(m.Value); }

🛡 12. Regex for Command Response Matching

Response:

OK:SET_APN

Regex:

Regex.IsMatch(resp, @"OK:SET_APN");

या dynamic:

Regex.IsMatch(resp, @"OK:" + cmdName);

⚠ Common Mistakes (Avoid)**

❌ Regex बहुत complex बना देना
✔ Simple रखें

❌ Regex begin/end markers नहीं लगाना
✔ Use ^ and $ when possible

❌ Every packet के लिए नया regex बनाना
✔ Compiled regex use करें

❌ गलत escape characters
✔ Use @"text" format


🔚 Conclusion

Regex आपके GPS server को बनाता है:

✔ Super-fast packet parser
✔ Minimal code
✔ Perfect accuracy
✔ Easy validation
✔ High-performance real-time handling

IMEI extract करना हो, alerts detect करने हों,
या पूरा packet parse — Regex आपका सबसे powerful टूल है।

Post a Comment

0 Comments

Translate

Close Menu