diff options
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 + } +} |
