【问题标题】:find the first occurrence of non-alphanumeric character in a string查找字符串中第一次出现的非字母数字字符
【发布时间】:2023-12-31 14:37:01
【问题描述】:

我知道我可以使用strpos 来查找第一次出现的字符串。但是是否有可能找到第一次出现的字符不是字母字符或数字。

例如:

strpos2('hello world') => 5

strpos2('hi!you') => 2

【问题讨论】:

  • strpos 适用于所有角色。你可以使用strpos('hello world',' ')strpos('hi!you','!')
  • @MohammadHamedani 我不是要一个特定的角色。我想找到第一次出现的非字母字符(任何字符)。不要找到第一个空格或!。
  • preg_split with[^\w] 并获取第一个块的 strlen 。如果你不想_写一个更强的条件
  • @splash58 是的。我认为/[^A-Za-z0-9]/ 更准确。

标签: php indexof strpos non-alphanumeric


【解决方案1】:

试试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]; }
  • 你要从中提取哪些信息由您决定
  • 好吧,我要求第一次出现。
  • 是的,去吧.. :)
最近更新 更多