You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改PHP正则以匹配Kč/CZK前后的金额数字

PHP正则提取多位置捷克克朗金额解决方案

核心修改点

  • 修正原正则中[Kč,CZK]的错误写法:方括号是单字符匹配规则,无法命中完整的货币单位字符串,改用(Kč|CZK)分组匹配两种单位
  • 新增货币单位前置的匹配逻辑,正则同时覆盖「金额在前货币在后」「货币在前金额在后」两种场景
  • 优化数字匹配规则,避免匹配空值,要求整数部分至少存在1位数字

完整可运行代码

// 测试用例可替换为三个示例中的任意一个
$string='Rohlík 4,99 Kč 51235';
// $string='Rohlík CZK 4,99 51235';
// $string='Rohlík Kč4,99 51235';

$replace = [' ', '.'];
$string = str_replace($replace,"",$string);
$string = str_replace(',',".",$string);

// 修改后的匹配正则
$pattern = '/(?:(Kč|CZK)(\d+\.?\d*)|(\d+\.?\d*)(Kč|CZK))/';
preg_match($pattern, $string, $matches);

// 提取匹配到的金额,判断是前置还是后置场景拿到数字
$price = isset($matches[2]) && $matches[2] !== '' ? $matches[2] : ($matches[3] ?? '');

print_r($price); // 所有测试用例均输出4.99

内容的提问来源于stack exchange,提问作者Aaron7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:27:07