1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
"""
提供高性能的文本解析和匹配功能
"""
from typing import Dict, List, Optional, Tuple
class Base:
"""基础类(向后兼容)"""
...
class Token:
"""
解析后的 Token
表示文本中的一个语义单元,包含类型、内容和元数据
"""
token_type: str
content: str
metadata: Dict[str, str]
def __init__(self, token_type: str, content: str) -> None:
"""
创建新的 Token
Args:
token_type: Token 类型
content: Token 内容
"""
...
def add_metadata(self, key: str, value: str) -> None:
"""
添加元数据
Args:
key: 元数据键
value: 元数据值
"""
...
def get_metadata(self, key: str) -> Optional[str]:
"""
获取元数据
Args:
key: 元数据键
Returns:
元数据值,如果不存在返回 None
"""
...
def to_dict(self) -> Dict[str, any]:
"""
转换为 Python 字典
Returns:
包含 Token 所有信息的字典
"""
...
def __repr__(self) -> str: ...
class RegexRule:
"""
正则表达式规则
用于文本匹配和提取
"""
rule_type: str
priority: int
def __init__(self, pattern: str, rule_type: str, priority: int) -> None:
"""
创建正则规则
Args:
pattern: 正则表达式模式
rule_type: 规则类型
priority: 优先级(数字越大优先级越高)
Raises:
ValueError: 如果正则表达式无效
"""
...
def matches(self, text: str) -> bool:
"""
测试文本是否匹配
Args:
text: 待测试的文本
Returns:
是否匹配
"""
...
def extract(self, text: str) -> Optional[List[str]]:
"""
提取匹配的捕获组
Args:
text: 待提取的文本
Returns:
捕获组列表,如果不匹配返回 None
"""
...
def find_all(self, text: str) -> List[Tuple[int, int, str]]:
"""
查找所有匹配
Args:
text: 待搜索的文本
Returns:
列表,每个元素为 (start, end, matched_text)
"""
...
class TextParser:
"""
高性能文本解析器
支持多规则、优先级排序的文本解析
"""
def __init__(self) -> None:
"""创建新的解析器"""
...
def add_rule(self, pattern: str, rule_type: str, priority: int) -> None:
"""
添加解析规则
Args:
pattern: 正则表达式模式
rule_type: 规则类型
priority: 优先级
Raises:
ValueError: 如果正则表达式无效
"""
...
def parse_line(self, text: str) -> List[Tuple[str, str, int, int]]:
"""
解析单行文本
Args:
text: 待解析的文本
Returns:
列表,每个元素为 (type, content, start, end)
"""
...
def parse_lines(self, lines: List[str]) -> List[List[Dict[str, any]]]:
"""
批量解析多行文本
Args:
lines: 文本行列表
Returns:
每行的解析结果列表
"""
...
def clear_rules(self) -> None:
"""清除所有规则"""
...
def rule_count(self) -> int:
"""
获取规则数量
Returns:
当前规则数量
"""
...
class FastMatcher:
"""
快速字符串匹配器
用于高效的多模式字符串匹配
"""
def __init__(self, patterns: List[str]) -> None:
"""
创建匹配器
Args:
patterns: 模式列表
"""
...
def contains_any(self, text: str) -> bool:
"""
检查文本是否包含任意模式
Args:
text: 待检查的文本
Returns:
是否包含任意模式
"""
...
def find_matches(self, text: str) -> List[str]:
"""
查找所有匹配的模式
Args:
text: 待搜索的文本
Returns:
匹配的模式列表
"""
...
def count_matches(self, text: str) -> Dict[str, int]:
"""
统计每个模式的出现次数
Args:
text: 待统计的文本
Returns:
字典,键为模式,值为出现次数
"""
...
|