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,非常感谢!一开始它们可能让人望而生畏,但它们非常强大。这是一个很好的资源。哦,这是我的学习过程。我一定会学会的!谢谢!:)