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

PHP preg_match匹配Text-Text-Integer格式出现Unknown modifier '-'错误怎么办

问题原因
  • PHP的preg_match函数要求正则表达式必须包裹在分隔符中,常用分隔符为/、#、~等特殊字符。你当前的正则没有手动设置分隔符,PHP会自动把正则开头的(识别为分隔符,当正则匹配到第一个)时就判定正则主体结束,后面的-会被误识别为正则修饰符,所以才会抛出“Unknown modifier '-'”报错,和-本身是否转义无关。
  • 你原有的正则规则只能匹配「单个字母-单个字母-单个数字」的格式,无法匹配domain-id-555这类多字符的域名片段,需要补充量词+匹配至少1个对应字符。
修正后的代码
<?php
// 用/作为正则分隔符,补充量词+匹配多字符
$get_keyword_value = "/([a-zA-Z]+)-([a-zA-Z]+)-([0-9]+)/";
$get_current_domain_value = "domain-id-555";

if(preg_match($get_keyword_value, $get_current_domain_value)){
    echo"Match";
}
else{
    echo"No match";
}
?>

如果担心正则内容和/冲突,也可以换用其他分隔符,比如#:$get_keyword_value = "#([a-zA-Z]+)-([a-zA-Z]+)-([0-9]+)#";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:48:02