从字符串中获取第一个单词,但不同的分隔符

时间:2012-05-17 12:16:15

标签: php

我在stackoverflow上找到了这个解决方案,用于从句子中获取第一个单词。

$myvalue = 'Test me more';
$arr = explode(' ',trim($myvalue));
echo $arr[0]; // will print Test

但是,这种情况需要''(空格)作为分隔符。如果您不知道分隔符是什么,有谁知道如何从字符串中获取第一个单词?它可以是''(空格),'。' (句号),'。' (或逗号)。基本上,你如何从字符串中取出任何字母到没有字母的地方?

E.g:

  • 'House,这里的其余句子'会给'House'
  • 屋“。也会给'House'
  • 'House thing'也会给'House'

谢谢!

3 个答案:

答案 0 :(得分:2)

preg_split正是您要找的。

$str = "bla1 bla2,bla3";
$words = preg_split("/[\s,]+/", $str);

此片段按空格分隔$ str,\ t,逗号,\ n。

答案 1 :(得分:1)

有一个字符串函数(strtok)可用于根据某些分隔符将字符串拆分为较小的字符串( tokens )。出于此线程的目的,Test me more的第一个单词(定义为第一个空格字符之前的任何单词)可以通过标记空格字符上的字符串来获得。

<?php
$value = "Test me more";
echo strtok($value, " "); // Test
?>

有关详细信息和示例,请参阅strtok PHP manual page

答案 2 :(得分:0)

preg_match()函数与正则表达式一起使用:

if (preg_match('/^\w*/', 'Your text here', $matches) > 0) {
  echo $matches[0]; // $matches[0] will contain the first word of your sentence
} else {
  // no match found
}
相关问题