如何确定字符串中的某些单词是否大于50个字符?

时间:2012-09-13 20:27:04

标签: php

如何用PHP做这样的事情?我喜欢这个只有C#How to check if a string contains a word longer than 50 characters?

的论坛解决方案

E.g。我有一个字符串:

$string_to_check = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa rrrr fe we we hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhererererereerdfsdfsdfsdfsdfsdfsdfsdfsdfsdfttttfsd hhghhhhhhhhhhhhhhhhhh fd s hoefjsd k
bla bla bla";

我想创建一个if条件,所以当string包含一个50或更多字符的单词时返回false;否则返回true;

任何建议如何解决这个问题表示赞赏。

5 个答案:

答案 0 :(得分:4)

尝试此功能:

function not_long_word($sentence, $length = 50) {
    $words = explode(' ', $string);
    foreach ($words as $key => $value) {
      if (strlen($value) > $length) return false;
    }
    return true;
}

用法:

$text = "word wooooooooooooooooooooooooooooooooooooooooooooooooooooooooooord";
if (not_long_word($text)) {
    echo "there no word longer than 50!";
}

答案 1 :(得分:1)

$str = "a word in-this-string-contains-fifty-or-more-ch ";

if(preg_match('/\S{50,}/',$str)) 
{ 
   echo 'String contains a word of more than 50 characters'; 
} 
else 
{ 
   echo 'String does not contains a word of more than 50 characters'; 
} 

答案 2 :(得分:0)

应该是这样的:

if(strlen($string_to_check) < 50 )
{
 ...
}
else {
...
}

答案 3 :(得分:0)

首先,将其拆分为单独的单词(假设空格是分隔符),然后找出任何单词是否超过50个字符:

$array = explode(" ",$string);
foreach ($array as $word) { 
  if (strlen($word) > 50) {
    echo "{$word}\n"
  }
}

如果分隔符可能有多个空格/制表符,则可以选择正则表达式:

$array = preg_split('[\t\s]+', $string);

答案 4 :(得分:0)

对此进行了测试,效果很好。

check_word_length( $string_to_check );

function check_word_length( $string_to_check ){
    foreach ( explode(' ', $string_to_check )  as $word) {
        if ( strlen($word) > 50 ) return false;
    }
    return true;
}