如何编写正则表达式匹配无Amount:前缀的目标数值
正则解决方案:排除指定前缀的金额提取
修正后的正则表达式(仅排除"Amount: "前缀):
(?<Amount>(?<!Amount: )\d+\.\d{2})若需确保金额为独立值(前后是空白或字符串首尾),可使用:
(?<Amount>(?<!Amount: )(?<!\S)\d+\.\d{2}(?!\S))正则逻辑说明:
(?<!Amount: ):负向后行断言,直接排除前缀为"Amount: "的金额\d+\.\d{2}:精准匹配整数部分至少1位、小数点后固定2位的金额(转义.避免匹配任意字符)(?<!\S)和(?!\S):限制金额前后无非空白字符,确保匹配独立的数值
原正则的问题:
[^$]会匹配任意非$的字符,可能把无关字符带入结果- 未转义的
.会匹配任意字符,而非仅小数点,匹配范围失控
内容的提问来源于stack exchange,提问作者DDJE
相关产品推荐
相关产品推荐

