0

PHPでそのようなことを行う方法は?私はこのフォーラムでC#の唯一の解決策が好きです。文字列に50文字を超える単語が含まれているかどうかを確認するにはどうすればよいですか?

たとえば、私は文字列を持っています:

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

また、if条件を作成して、文字列に50文字以上の単語が含まれている場合にfalseを返すようにします。それ以外の場合はtrueを返します。

これを解決する方法についてのアドバイスをいただければ幸いです。

4

5 に答える 5

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!";
}
于 2012-09-13T20:30:10.733 に答える
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'; 
} 
于 2015-12-12T11:07:35.423 に答える
0

これは次のようになります:

if(strlen($string_to_check) < 50 )
{
 ...
}
else {
...
}
于 2012-09-13T20:31:26.230 に答える
0

まず、それを個々の単語に分割し(スペースが区切り文字であると想定)、次に、単語が50文字より長いかどうかを調べます。

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

セパレータに複数のスペース/タブがある場合は、正規表現を選択できます。

$array = preg_split('[\t\s]+', $string);
于 2012-09-13T20:31:57.347 に答える
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;
}
于 2012-09-13T21:28:28.863 に答える