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

如何编写允许单词间仅以空格分隔的正则匹配模式

你需要将正则pattern修改为/^[a-zA-Z]+( [a-zA-Z]+)*$/即可满足所有校验规则,规则匹配逻辑如下:

  • ^ 匹配字符串起始位,避免字符串开头出现非法字符
  • [a-zA-Z]+ 匹配至少1个大小写英文字母,对应第一个单词
  • ( [a-zA-Z]+)* 为重复分组,*表示分组可出现0次或多次:分组内以1个空格开头,后接至少1个英文字母,保证多个单词之间只能用单个空格分隔
  • $ 匹配字符串结束位,避免字符串末尾出现非法字符

修改后的完整代码如下:

$pattern = '/^[a-zA-Z]+( [a-zA-Z]+)*$/';
$validation = preg_match($pattern, $request->status);
if($validation){
  //匹配到对应模式时执行你的逻辑
}

匹配效果验证

  • 有效输入全部通过:单个纯字母单词、多个纯字母单词用空格分隔的输入均可正常匹配,大小写不受限制
  • 无效输入全部拦截:包含下划线、短横线、连续空格、首尾空格、数字、其他特殊符号的输入都会匹配失败

如果你的业务允许输入首尾带空格,可以调整正则为/^\s*[a-zA-Z]+( [a-zA-Z]+)*\s*$/,会自动忽略首尾的空白字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:54:08