Commit 67203ba8 by matianyun

Update check_ccfa.py

parent ebfcafa0
......@@ -33,6 +33,16 @@ def extract_bracket_content(s):
match = re.search(r'[((](.*?)[))]', s)
return match.group(1).strip() if match else None
def extract_abbr_before_colon(s):
"""
提取冒号前的内容(支持中英文冒号),并只保留英文字母
"""
split_result = re.split(r'[::]', s, 1)
if len(split_result) > 1:
abbr = re.sub(r'[^A-Za-z]', '', split_result[0])
return abbr if abbr else None
return None
def main():
# 1. 读取CCF-A列表
abbr_set, fullname_set = read_ccf_a_list(ccf_a_csv)
......@@ -60,23 +70,37 @@ def main():
print(f"错误:{sheetname} 页,标题栏应该在第四行!!第四列标题为【{col4}】,第五列标题为【{col5}】,不符合要求!")
sys.exit(1)
# 5. 逐行处理
for row in ws.iter_rows(min_row=header_row_idx+1):
name_cell = row[3] # 第四列
result_cell = row[4] # 第五列
name = name_cell.value
if name == 'Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems':
breakpoint()
if not name or not str(name).strip():
result_cell.value = ""
continue
name_str = str(name).strip()
# 6. 先提取括号内内容
# 1. 括号简称
bracket = extract_bracket_content(name_str)
is_ccfa = False
if bracket and bracket in abbr_set:
is_ccfa = True
elif name_str in fullname_set:
is_ccfa = True
result_cell.value = "是" if is_ccfa else "否"
bracket_abbr = re.sub(r'[^A-Za-z]', '', bracket) if bracket else None
# 2. 冒号前简称
colon_abbr = extract_abbr_before_colon(name_str)
# 判断是否有简称(括号或冒号前)
if bracket_abbr or colon_abbr:
match = False
if bracket_abbr and bracket_abbr in abbr_set:
match = True
elif colon_abbr and colon_abbr in abbr_set:
match = True
result_cell.value = "是" if match else "否"
else:
# 没有简称,判断全称包含
is_ccfa = False
for fullname in fullname_set:
if fullname and fullname in name_str:
is_ccfa = True
break
result_cell.value = "是" if is_ccfa else "否"
# 7. 保存新文件
base, ext = os.path.splitext(excel_path)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment