Notepad++正则表达式:在XPath中添加FpML节点(含排除规则)
解决Notepad++正则添加FpML节点的方案
直接用Notepad++的正则替换功能,按以下步骤操作:
- 打开Notepad++,按下
Ctrl+H调出替换窗口 - 勾选「正则表达式」选项,不要勾选「. 匹配换行符」
- 在「查找目标」中输入:
(?<!CRD_Structured/)allocation(?:\[\w+\])?(?!/FT_Extension|$)/
- 在「替换为」中输入:
$0FpML/
- 点击「全部替换」即可批量处理所有符合要求的XPath
正则逻辑说明
(?<!CRD_Structured/):负向预查,确保allocation前面不是CRD_Structured/,排除场景1allocation(?:\[\w+\])?:匹配allocation本身,以及带索引的allocation[xxx]格式(?!/FT_Extension|$):负向预查,确保allocation后面不是/FT_Extension或直接到字符串结尾(比如allocation[]这种无后续节点的情况),排除场景2和示例4$0:指代匹配到的整个内容,追加FpML/完成插入
示例验证
- 匹配并修改:
allocation[Out1]/@fpmlVersion→allocation[Out1]/FpML/@fpmlVersionallocation[Int1]/trade→allocation[Int1]/FpML/trade
- 不修改:
allocation[Out1]/FT_Extension(触发排除场景2)pathString="allocation[]"(allocation[]后无后续节点)CRD_Structured/allocation[FindAllocOut1]/TS_ORDER_ALLOC(触发排除场景1)
内容的提问来源于stack exchange,提问作者Radek
相关产品推荐
相关产品推荐

