我需要在第一组字母之后提取46,789,955.22,包括。, - 在以下行中
123,145 ASD 25,678,345.22 46,789,955.22 USD 5,445,453.22
我用它来提取:
(?<=[A-Z][A-Z][A-Z])\s*[\d\.\,\-]*\s*([\d\.\,\-]*)
但是这也会在ASD之后返回第一组数字。有没有办法只返回一个匹配,如果数字前面有一组三个字母,并且在该行的其余部分的某个地方出现另一组三个字母?
每当我尝试使用另一个前瞻来找到下一组字母时,我都会失去捕获组。
答案 0 :(得分:0)
使用预测断言另一个国家/地区代码出现在目标之后的某个位置:
[A-Z]{3}\s*([\d.,-]*)(?=.*[A-Z]{3})
我还删除了正则表达式中的一些不必要的字符:
[A-Z][A-Z][A-Z]
缩写为[A-Z]{3}