正则匹配含特殊格式部分邮编的学校数据问题咨询
正则表达式提取非整洁PDF学校数据的解决方案
直接给出适配需求的正则表达式:
^(\d{5})\s{2,}(.*?)\s{2,}(\d+)\s+(\d+)$
规则解释
^(\d{5}):精确捕获开头的5位学校ID,锚定行首避免匹配行内无关数字。\s{2,}:匹配ID与校名之间的至少2个空格,确保和校名内部的单个空格区分开。(.*?):非贪婪匹配任意字符,直到遇到后续的「至少2个空格+数字」组合,完整包含校名里的特殊格式(如W9、W11这类字母+数字的邮编片段)。\s{2,}:匹配校名与申请数之间的至少2个空格,作为校名结束的标识。(\d+):捕获申请数(至少1位数字,比\d*更贴合实际数据场景)。\s+:匹配申请数与录取数之间的1个或多个空格。(\d+):捕获录取数。$:锚定行尾,确保整行完整匹配,避免截断。
验证示例
针对测试用例,捕获结果如下:
- 输入行:
18747 ABC School 50 14
捕获组:(18747)(ABC School)(50)(14) - 输入行:
17646 EFG School W11 190 44
捕获组:(17646)(EFG School W11)(190)(44) - 输入行:
10422 XYZ College W9 60 33
捕获组:(10422)(XYZ College W9)(60)(33)
内容的提问来源于stack exchange,提问作者limestreetlab
相关产品推荐
相关产品推荐

