构建符合特定格式规则的字符串匹配正则表达式
正则表达式匹配特定格式字符串的解决方案
需求概述
- 目标匹配格式示例:
"CC/N/NAME ‡C/CITY NAME ‡A/ADDRESS" - 核心规则:
- 必须完全匹配符合结构的字符串
- 符号
‡不可出现在有效内容中间(如CC/N/NAME ‡C/CITY‡ NAME ‡A/ADDRESS"这类情况需排除) - 字符串必须包含
CC/[NACZP]/格式的起始部分 - 所有
‡符号后必须紧跟[NACZP]/(例如‡N/NAME才是有效结构)
错误尝试的正则
用户曾尝试以下正则,但无法正确过滤违规的‡符号:
^(CC\\/[NACZP]\\/[^‡]*)|(.*)(?<=‡[NACZP]\\/)([^‡]*)|^CC\\/[¤ ]$
^(CC\/[NACZP]\/[^‡]*)|(.*)(?<=‡[NACZP]\/)([^‡]*)|^CC\/[¤ ]$
正确正则表达式
^CC\/[NACZP]\/[^‡]*(?:‡[NACZP]\/[^‡]*)*$
正则逻辑解释
^:锁定字符串开头,确保起始结构正确CC\/[NACZP]\/:匹配必填的起始格式,[NACZP]匹配指定的任意大写字母[^‡]*:匹配任意数量的非‡字符,避免‡插入到内容中间(?:‡[NACZP]\/[^‡]*)*:非捕获组,允许重复出现‡[NACZP]/+内容的结构,确保每个‡后都紧跟合法前缀$:锁定字符串结尾,实现完全匹配,避免部分匹配
测试验证
- 匹配成功:
CC/N/NAME ‡C/CITY NAME ‡A/ADDRESS - 匹配失败:
CC/N/NAME ‡C/CITY‡ NAME ‡A/ADDRESS(‡出现在CITY与NAME之间,违反规则)
内容的提问来源于stack exchange,提问作者Dipesh Patidar
相关产品推荐
相关产品推荐

