在起始行中计算字符'_'
示例:
subject = '_abcd_abc'; // return 1
or
subject = '__abcd_abc'; // return 2
or
subject = '___abcd_abc'; // return 3
大家帮帮我〜
我用PHP
答案 0 :(得分:3)
如果您确定字符串的开头包含_
,则可以仅使用strspn()
执行此操作:
echo strspn('___abcd_abc', '_');
// -> 3
如果可能没有前导下划线,您仍然可以在没有使用strlen
和ltrim
的正则表达式的情况下执行此操作:
strlen($str) - strlen(ltrim($str, "_"));
这会计算字符串长度,然后减去左边没有下划线的字符串长度,结果就是下划线的数量。
答案 1 :(得分:1)
试试这个:
return preg_match('/^_+/', $str, $match) ? strlen($match[0]) : 0;
如果preg_match
找到匹配项,$match[0]
将包含该匹配项,strlen($match[0])
将返回匹配项的长度;否则表达式将返回0
。