diff options
Diffstat (limited to 'parsers/survex.py')
-rw-r--r-- | parsers/survex.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/parsers/survex.py b/parsers/survex.py index 5338148..5f601e1 100644 --- a/parsers/survex.py +++ b/parsers/survex.py @@ -298,7 +298,61 @@ class LoadingSurvex: rx_commteam = re.compile(r"(?i)\s*(Messteam|Zeichner)\s*[:]?(.*)") rx_quotedtitle = re.compile(r'(?i)^"(.*)"$') + """ + Regular expression explanation for rx_starref (MS CoPilot) + + (?i) : Case-insensitive flag for the regex + ^ : Asserts the position at the start of a line + \s* : Matches zero or more whitespace characters + \*ref : Matches the literal string "*ref" + [\s.:]* : Matches zero or more whitespace characters, periods, or colons + + ((?:19[6789]\d)|(?:20[0123]\d)) + : Capturing group that matches a year in the 1960s-1990s or 2000s-2030s + : (?:...) is a non-capturing group + : 19[6789]\d matches years from 1960 to 1999 + : 20[0123]\d matches years from 2000 to 2039 + + \s* : Matches zero or more whitespace characters + #? : Matches zero or one "#" character + \s* : Matches zero or more whitespace characters + + (X)? : Capturing group that optionally matches the character "X" + \s* : Matches zero or more whitespace characters + + (.*?\d+.*?) : Capturing group that matches any character sequence containing at least one digit + : .*? matches any character (except newline), as few times as possible (non-greedy) + : \d+ matches one or more digits + : .*? matches any character (except newline), as few times as possible (non-greedy) + + $ : Asserts the position at the end of a line + Regular expression explanation for rx_argsref + + (?i) : Case-insensitive flag for the regex + ^ : Asserts the position at the start of a line + [\s.:]* : Matches zero or more whitespace characters, periods, or colons + + ((?:19[6789]\d)|(?:20[012345]\d)) + : Capturing group that matches a year in the 1960s-1990s or 2000s-2050s + : (?:...) is a non-capturing group + : 19[6789]\d matches years from 1960 to 1999 + : 20[012345]\d matches years from 2000 to 2059 + + \s* : Matches zero or more whitespace characters + #? : Matches zero or one "#" character + \s* : Matches zero or more whitespace characters + + (X)? : Capturing group that optionally matches the character "X" + \s* : Matches zero or more whitespace characters + + (.*?\d+.*?) : Capturing group that matches any character sequence containing at least one digit + : .*? matches any character (except newline), as few times as possible (non-greedy) + : \d+ matches one or more digits + : .*? matches any character (except newline), as few times as possible (non-greedy) + + $ : Asserts the position at the end of a + """ # This interprets the survex "*data normal" command which sets out the order of the fields in the data, e.g. |