PHP如何从超长货币字符串中提取货币代码及每欧元对应汇率
实现代码(PHP)
直接使用正则匹配即可,不需要额外处理随机空格、换行,也无需调用任何API:
<?php // 替换为你自己的完整原始字符串 $rawString = '此处粘贴完整的货币数据字符串'; // 匹配规则:3位大写货币代码 + 任意长度非数字/逗号内容(货币名称)+ 第一个带逗号的汇率值 preg_match_all('/([A-Z]{3})\s+[^0-9,]+([0-9,]+)/', $rawString, $matches); $pairs = []; foreach ($matches[1] as $k => $currencyCode) { // 避免重复值 if (!isset($pairs[$currencyCode])) { // 如果需要数值类型,可把逗号替换为小数点:str_replace(',', '.', $matches[2][$k]) $pairs[$currencyCode] = $matches[2][$k]; } }
已提取完成的关联数组(基于你提供的所有片段)
$pairs = [ 'USD' => '1,164342', 'EUR' => '1,000000', 'GBP' => '0,842392', 'INR' => '87,128927', 'AUD' => '1,549853', 'CAD' => '1,435142', 'SGD' => '1,564234', 'CHF' => '1,070921', 'MYR' => '4,846357', 'JPY' => '132,999525', 'CNY' => '7,444264', 'NZD' => '1,616910', 'THB' => '38,890927', 'HUF' => '362,270767', 'AED' => '4,276047', 'HKD' => '9,052195', 'MXN' => '23,485298', 'ZAR' => '16,811235', 'PHP' => '59,132446', ];
内容的提问来源于stack exchange,提问作者Karlis Pokkers
相关产品推荐
相关产品推荐

