2024-08-29 16:37:09 +08:00
|
|
|
import re
|
|
|
|
|
2024-09-03 11:42:43 +08:00
|
|
|
def extract_key_value_from_line(line):
|
|
|
|
# 更新正则表达式以处理带序号和不带序号的情况
|
|
|
|
pattern = r'^((?:\d+(?:\.\d+)*\.?\s*)?)(.+?)\s*/\s*$'
|
|
|
|
match = re.match(pattern, line)
|
|
|
|
|
2024-09-03 09:36:18 +08:00
|
|
|
if match:
|
2024-09-03 11:42:43 +08:00
|
|
|
# 获取键名,并去除多余的空格
|
|
|
|
key = match.group(2).strip()
|
|
|
|
# 设置值为"无"
|
|
|
|
value = "无"
|
|
|
|
return {key: value}
|
|
|
|
return {}
|
|
|
|
|
|
|
|
# 测试函数
|
|
|
|
def test_extraction():
|
|
|
|
test_cases = [
|
|
|
|
"1.1.6 设计人 /",
|
|
|
|
"3.4 某个键名:/",
|
|
|
|
"5. 另一个键名 /",
|
|
|
|
"1.2.3.4 复杂序号键名:/",
|
|
|
|
"6.简单键名/",
|
|
|
|
"不带序号的行:/",
|
|
|
|
"纯文本/",
|
|
|
|
]
|
2024-08-29 16:37:09 +08:00
|
|
|
|
2024-09-03 11:42:43 +08:00
|
|
|
for case in test_cases:
|
|
|
|
result = extract_key_value_from_line(case)
|
|
|
|
print(f"Input: {case}")
|
|
|
|
print(f"Result: {result}\n")
|
2024-08-29 16:37:09 +08:00
|
|
|
|
2024-09-03 11:42:43 +08:00
|
|
|
# 运行测试
|
|
|
|
test_extraction()
|