1
+ """
2
+ Function: Regular Expression
3
+ The ure module provides regular expression matching operations.
4
+
5
+ Supported operators:
6
+ '.' - Match any character
7
+ '[]' - Match set of characters (individual characters and ranges)
8
+ '^' - Match the start of the string
9
+ '$' - Match the end of the string
10
+ '?' - Match zero or one of the previous sub-pattern
11
+ '*' - Match zero or more of the previous sub-pattern
12
+ '+' - Match one or more of the previous sub-pattern
13
+ '??' - Non-greedy version of ? (match zero or one)
14
+ '*?' - Non-greedy version of * (match zero or more)
15
+ '+?' - Non-greedy version of + (match one or more)
16
+ '|' - Match either the left-hand side or the right-hand side
17
+ '\d' - Match digit
18
+ '\D' - Match non-digit
19
+ '\s' - Match whitespace
20
+ '\S' - Match non-whitespace
21
+ '\w' - Match "word characters" (ASCII only)
22
+ '\W' - Match non-"word characters" (ASCII only)
23
+
24
+ Not supported operators:
25
+ '{m,n}' - Counted repetitions
26
+ '(?P<name>...)' - Named groups
27
+ '(?:...)' - Non-capturing groups
28
+ '\b ' - Word boundary assertions
29
+ '\B' - Non-word boundary assertions
30
+ '\r ' - Carriage return (use Python's escaping instead)
31
+ '\n ' - Newline (use Python's escaping instead)
32
+
33
+ Descriptions taken from:
34
+ https://developer.quectel.com/doc/quecpython/API_reference/en/stdlib/ure.html
35
+ """
36
+
37
+ class error (Exception ):
38
+ """Exception raised for invalid regular expressions."""
39
+ pass
40
+
41
+ def compile (regex ):
42
+ """
43
+ Compiles a regular expression and generates a regular-expression object
44
+
45
+ :param regex: Regular expression string
46
+ :return: Compiled regex object
47
+ """
48
+
49
+
50
+ def match (regex , string ):
51
+ """
52
+ Matches the compiled regular expression against string from the start
53
+
54
+ :param regex: Regular expression string or compiled object
55
+ :param string: The string to be matched
56
+ :return: Match object if successful, otherwise None
57
+ """
58
+
59
+
60
+ def search (regex , string ):
61
+ """
62
+ Searches for the compiled regular expression in string
63
+
64
+ :param regex: Regular expression string or compiled object
65
+ :param string: The string to search in
66
+ :return: Match object if found, otherwise None
67
+ """
68
+
69
+
70
+ class Match :
71
+ """Match object returned by successful match/search"""
72
+
73
+ def group (self , index = 0 ):
74
+ """
75
+ Returns the string captured by the group
76
+
77
+ :param index: Group index (0 = entire match)
78
+ :return: Captured substring
79
+ :raises: Error when group does not exist
80
+ """
0 commit comments