我有一段文本,其中包含一系列美元价值。目的是每次提取第三美元的价值。示例文本如下。
Bunch of text blah blah blah
Ctr Pty ID: 1 $4,233.65 $5,073.64 $9,307.29 $9,273.41 $0.00 $0.00 $33.88
我想出了下面的代码,该代码与美元符号后的所有值匹配,但是我还没有找到提取第三个值的方法:
(?<=Ctr Pty ID.*\$)\S+
结果:
4,233.65 5,073.64 9,307.29 9,273.41 0.00 0.00 33.88
我期望提取出第3美元的价值,在这种情况下为9,307.29
[如果只想选择匹配项并在后面使用量词,则可以断言左边的是Ctr Pty ID:
,然后是除$
以外的任何字符的3倍,然后匹配$
之后,匹配1+倍非空格字符。
(?<=Ctr Pty ID:(?:[^$]+\$){3})\S+
要使用美元的当前格式(使用逗号和点)来进行更具体的匹配,可以使用
(?<=Ctr Pty ID:[^$]*(?:\$[0-9]{1,3}(?:,[0-9]{3})*\.[0-9]{2} ){2}\$)[0-9]{1,3}(?:,[0-9]{3})*\.[0-9]{2}