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

支持双点范围字符掩码语法的原生PHP函数有哪些

PHP支持双点(..)范围字符掩码的原生字符串函数

首先明确版本差异:

  • addcslashes() 从PHP 4版本起就原生支持..语法表示连续字符范围,是最早支持该特性的字符串函数。
  • 其余接收字符掩码参数的字符串函数,从PHP 8.3.0版本开始统一支持该语法;低于该版本的环境中,..会被解析为普通的.字符参与匹配,不会识别为范围标记。

除trim()外,支持该特性的具体函数及用法如下:

  • ltrim():裁剪字符串开头位置所有匹配掩码的字符,参数逻辑与trim()完全一致。
    示例:echo ltrim('456test', '0..9'); 输出结果为test
  • rtrim()(别名chop()):裁剪字符串末尾位置所有匹配掩码的字符。
    示例:echo rtrim('test789', '0..9'); 输出结果为test
  • strspn():计算字符串开头连续匹配掩码字符的子串长度。
    示例:echo strspn('234abc', '0..9'); 输出结果为3,对应前3位数字的长度
  • strcspn():计算字符串开头连续不包含掩码字符的子串长度。
    示例:echo strcspn('abc567', '0..9'); 输出结果为3,对应前3位非数字字符的长度
  • strpbrk():查找字符串中第一个匹配掩码的字符位置,返回从该位置到字符串末尾的子串。
    示例:echo strpbrk('xyz123aaa', '0..9'); 输出结果为123aaa
  • str_word_count():统计字符串中的单词数量,其第三个参数(用于指定视为单词组成部分的额外字符列表)在PHP 8.3.0后支持..范围语法。
    示例:print_r(str_word_count('test123test', 1, '0..9')); 会将数字识别为单词组成部分,返回仅包含test123test一个元素的数组;不支持范围语法时,数字会被当做单词分隔符,返回test、test两个元素。
  • addcslashes():为所有匹配掩码的字符添加反斜杠转义。
    示例:echo addcslashes('abc123', 'a..z'); 输出结果为\a\b\c123

使用注意:

  1. 编写字符范围时需保证左侧字符的ASCII码小于等于右侧字符,例如'a..z'、'0..9'为合法写法;如果写反为'z..a',PHP会触发警告,无法正常匹配范围。
  2. 如果需要匹配字面量的.字符,将其放在掩码字符串的开头或末尾即可避免被解析为范围操作符,例如掩码'.0..9'会同时匹配.和0-9的所有数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:00:54