我知道可以使用strpos
找到字符串的第一个出现位置。但是否可能找到一个非字母或数字字符的第一个出现位置。
例如:
strpos2('hello world') => 5
strpos2('hi!you') => 2
我知道可以使用strpos
找到字符串的第一个出现位置。但是否可能找到一个非字母或数字字符的第一个出现位置。
例如:
strpos2('hello world') => 5
strpos2('hi!you') => 2
preg_match
。$string = "hi!you";
preg_match('/[\W]+/', $string, $match, PREG_OFFSET_CAPTURE);
print_r($match);
在这里,$match将返回第一个匹配的非字母字符的位置
if(preg_match("/[\W]+/", $str, $matches, PREG_OFFSET_CAPTURE)) { $index = $matches[0][1]; }
- undefined
strpos
适用于所有字符。您可以使用strpos('hello world',' ')
和strpos('hi!you','!')
。 - undefined[^\w]
进行分割,并获取第一个片段的长度。如果您不想包括_
,请编写更严格的条件。 - undefined/[^A-Za-z0-9]/
更准确。 - undefined