これがどれだけ古いかを考えると、これがまだ問題である可能性は低いですが、同様の問題を抱えている人の利益のために、未回答としてリストされています...
すべての一致を配列に抽出する簡単なパターンを次に示します。より柔軟にする必要がある場合とない場合があります。
<cfset Matches = rematch( '\D+ \d\.\d{3} \d+\.\d{3} \d\d -\d\.\d{3} 0.000' , Input ) />
次に、これらの結果をループして、一致ごとに名前と国を次のように数字から分離できます。
<cfset NameAndCountry = trim(Left( CurMatch , refind('\d',CurMatch)-1 )) />
<cfset Numbers = Right( CurMatch , Len(CurMatch)-Len(NameAndCountry) ) />
名前から国を抽出するのは簡単ではありません。どちらがどちらであるかについてのルールは実際にはありません。そのため、ループしてチェックする一連の国の必要があります。たとえば、次のようになります。
<cfloop index="CurCountry" array=#Countries# >
<cfif NameAndCountry.endsWith( CurCountry ) >
<cfset Name = Left( NameAndCountry , Len(NameAndCountry)-Len(CurCountry) />
<cfbreak />
</cfif>
</cfloop>
数字については、スペースを区切り文字としてListToArrayを使用すると、数字を区切ることができます。