diff options
| author | Arturs Artamonovs <arturs.artamonovs@protonmail.com> | 2026-09-24 11:02:35 +0100 |
|---|---|---|
| committer | Arturs Artamonovs <arturs.artamonovs@protonmail.com> | 2026-09-24 11:02:35 +0100 |
| commit | 505b23afc68ecbb63b8f0a7d44c0b0ad063d5cfd (patch) | |
| tree | d38b29a0cf23041571eb08fd79f49fdad8deb85f /ADSBDecoderFramework/ADSBRegEx.swift | |
| parent | 056ee0c3355db995d7ea571e0635ebe8b09bf8ee (diff) | |
| download | ADSBDecoder-505b23afc68ecbb63b8f0a7d44c0b0ad063d5cfd.tar.gz ADSBDecoder-505b23afc68ecbb63b8f0a7d44c0b0ad063d5cfd.zip | |
rearrange source, move common parts to framework
Diffstat (limited to 'ADSBDecoderFramework/ADSBRegEx.swift')
| -rw-r--r-- | ADSBDecoderFramework/ADSBRegEx.swift | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/ADSBDecoderFramework/ADSBRegEx.swift b/ADSBDecoderFramework/ADSBRegEx.swift new file mode 100644 index 0000000..2841467 --- /dev/null +++ b/ADSBDecoderFramework/ADSBRegEx.swift @@ -0,0 +1,87 @@ +// +// ADSBRegEx.swift +// ADSBDecoder +// +// Created by Jacky Jack on 30/06/2024. +// + +import Foundation +import RegexBuilder +/* +let matchADSBLong = Regex { + Anchor.startOfLine + "*" + + Repeat( + CharacterClass( + ("a"..."f"), + ("0"..."9") + ) + ,count:28) + + ";" +}*/ +class MatchADSBLong { + let matchADSBLong = Regex { + Anchor.startOfLine + "*" + + Repeat( + CharacterClass( + ("a"..."f"), + ("0"..."9") + ) + ,count:28) + + ";" + } + + func prefixMatch(_ line: String) -> Regex<Regex<Substring>.RegexOutput>.Match? { + do { + if let match = try matchADSBLong.prefixMatch(in: line) { + return match + } + } catch { + return nil + } + return nil + } +} + +/* +let matchADSBShort = Regex { + Anchor.startOfLine + "*" + Repeat( + CharacterClass( + ("a"..."f"), + ("0"..."9") + ) + ,count:14) + ";" +}*/ + +class MatchADSBShort { + let matchADSBShort = Regex { + Anchor.startOfLine + "*" + Repeat( + CharacterClass( + ("a"..."f"), + ("0"..."9") + ) + ,count:14) + ";" + } + + func prefixMatch(_ line: String) -> Regex<Regex<Substring>.RegexOutput>.Match? { + do { + if let match = try matchADSBShort.prefixMatch(in: line) { + return match + } + } catch { + return nil + } + return nil + } +} |
