Php 不能读第一个字母

Php 不能读第一个字母,php,Php,我想添加一个函数来返回第一个字母是否为大写 代码如下: <?php function isCapital($string) { return $string = preg_match('/[A-Z]$/',$string{0}); } $text = " Poetry. do you read poetry while flying? Many people find it relaxing to read on long flights. Poetry can be divid

我想添加一个函数来返回第一个字母是否为大写

代码如下:

<?php

function isCapital($string) {
   return $string = preg_match('/[A-Z]$/',$string{0});
}

$text = " Poetry. do you read poetry while flying? Many people find it relaxing to read on long flights. Poetry can be divided into several genres, or categories. ";
$sentences = explode(".", $text); $save = array();
foreach ($sentences as $sentence) {
   if (count(preg_split('/\s+/', $sentence)) > 6) {
      $save[] = $sentence. ".";
   }
}

if( count( $save) > 0) {
   foreach ($save as $nama){
      if (isCapital($nama)){
         print_r ($nama);
      }
   }
}
?>

结果应该是

诗歌可以分为几种类型

……但它什么也没印出来。我只需要包含6个以上单词并以大写字母开头的句子。

执行explode()函数时,在字符串的开头留下一个空格,这意味着$string最左边的字符永远不会是大写字母,而是一个空格。我将isCapital()函数更改为以下内容:

function isCapital($string) {
  return preg_match('/^\\s*[A-Z]/', $string) > 0;
}
执行explode()函数时,在字符串的开头留下一个空格,这意味着$string最左边的字符永远不会是大写字母,而是一个空格。我将isCapital()函数更改为以下内容:

function isCapital($string) {
  return preg_match('/^\\s*[A-Z]/', $string) > 0;
}

如果您愿意,您应该能够通过一个正则表达式完成所有这些:

preg_match_all('/((?=[A-Z])([^\s.!?]+\s+){5,}[^\s.!?]+[.!?])/', $string, $matches);


或者,删除
从字符类到仅将
计算为句子分隔符。

如果您愿意,您应该能够通过一个正则表达式完成所有这一切:

preg_match_all('/((?=[A-Z])([^\s.!?]+\s+){5,}[^\s.!?]+[.!?])/', $string, $matches);


或者,删除
从字符类到仅将
计算为句子分隔符。

请注意,打印句子时,这仍然会在句子开头留下空格。要消除这种情况,请尝试以下方法,而不是使用explode语句:
$SEQUANCES=preg\u split('/\\\.\\s*/',$text)哦,如果你想的话,你可能会得到一个更漂亮的。可能想排除正则表达式中先生、夫人、博士等的可能性。解析这样的文本实际上在语义上非常困难。很高兴我能帮忙,祝你好运!哦,是的,我觉得我也需要了解这一点。非常感谢你!抱歉,如果我的英语不好:)请注意,当你打印它时,这仍然会在句子的开头留下空格。要消除这种情况,请尝试以下方法,而不是使用explode语句:
$SEQUANCES=preg\u split('/\\\.\\s*/',$text)哦,如果你想的话,你可能会得到一个更漂亮的。可能想排除正则表达式中先生、夫人、博士等的可能性。解析这样的文本实际上在语义上非常困难。很高兴我能帮忙,祝你好运!哦,是的,我觉得我也需要了解这一点。非常感谢你!对不起,如果我的英语不好:)为什么“很多人觉得在长途飞行中阅读很轻松。”这句话是无效的?因为他没有检查问号,所以这句话被读为“你在飞行中读诗歌吗?很多人觉得在长途飞行中阅读很轻松。”这句话不是以大写字母开头的。我理解,但是为什么你不想数一数前面有疑问句的句子呢?@geogefox哦,这只是一个(随机的)例句DWhy是“很多人觉得在长途飞行中阅读很放松。”这不是一个有效的句子?因为他没有检查问号,所以这句话被解读为“你在飞行中读诗歌吗?很多人觉得在长途飞行中阅读很放松。”这句话不是以大写字母开头的。我理解,但是为什么你不想数一数前面有疑问句的句子呢?@geogefox哦,这只是一个(随机的)例句Doh,那会很有用的,我刚刚开始学习regex,非常感谢!一开始它们可能让人望而生畏,但它们非常强大。这是一个很好的资源。哦,这是我的学习过程。我一定会学会的!谢谢!:)哦,那会很有用的,我才刚刚开始学习regex,非常感谢!一开始它们可能让人望而生畏,但它们非常强大。这是一个很好的资源。哦,这是我的学习过程。我一定会学会的!谢谢!:)