回答
如果您將句子看作一個帶點的單詞,最後您可以在文本中計算點。
如果您使用新行,請計數\n
's。
由於沒有人說過,這取決於你如何定義一個句子。這是一個嗎?這是一個換行嗎?它是一個首都嗎? 我認爲定義「一個句子」確實很難,因爲對於每個定義,您可以考慮100條該規則的例外情況。
無論如何,如果你想出一個定義,你可以計算出你的textarea中的出現次數。如換行次數,點數或大寫字母的數量。或者將所有這些組合成一個定義。所以基本上,只需把你的textarea的內容和處理它的一些功能。 :-)
這是最好的,可以回答這個問題伊莫。
編輯您的編輯後,我的回答是:
function starts_with_upper($str) {
$chr = mb_substr ($str, 0, 1, "UTF-8");
return mb_strtolower($chr, "UTF-8") != $chr;
}
//Get sentences splitted by a dot and starting with a capital letter.
$total = 0;
$sentences = explode('.', rtrim($text, '.'));
for ($i = 0; $i < count($sentences); $i++) {
$sentence = $sentences[i];
if (starts_with_upper($sentence)) {
$total++;
}
}
echo "You have " . $total . " sentences ending in a dot.
從PHP的角度來看,一個<textarea>
只是另一種<input>
,所以這將是可通過$_GET
或$_POST
正常提交表單時。
句子本身的計算相當複雜 - 您可以通過文本中的句數(.
)來計算句子的數量,但這會因縮寫而失敗。 e.g.
。你可以通過計算一個空格和一個大寫字母后的句點數來實現,但是對於普通名詞後面的縮寫,以及對於在句子開頭不使用大寫字母的人來說,這會失敗。你可以決定一個平均句子長度(比如70個字符)和大約sentences = characters/70
。這些解決方案都不是完美的(在我看來,甚至是不錯的)。
UPDATE:按照你更新的問題,下面應該是有幫助的:
<?php
preg_match_all("/(^|[.!?])\s*[A-Z]/",$_POST['textarea'],$matches);
$count = count($matches);
(注意,這隻適用於A-Z首都,並且不包括諸如Ä這樣的字符,我認爲。) – Benjie
- 1. 計算句子數
- 2. 如何計算句子中的單詞?
- 3. 如何計算WHERE子句的字段
- 4. 計算列BY子句
- 5. 計算句子的函數
- 6. 計算機AI算法寫句子?
- 7. TSQL如何做子計算
- 8. 如何計算子行數?
- 9. 用詞彙量計算句子的計算概率
- 10. 計算字符串中的句子數
- 11. 計算所使用TOP子句
- 12. 更新與HAVING子句計算
- 13. Mysql計算結果在where子句中?
- 14. MySQL計算結果在WHERE子句中
- 15. 計算HAVING子句的麻煩
- 16. 使用After子句添加計算列
- 17. 我們如何使用Hibernate和where子句來計算行數?
- 18. 如何在WHERE子句中使用計算列?
- 19. 句子相似度 - 如何使用WordNet計算subsumer的深度?
- 20. 如何使用where子句計算多個列? (SQL)
- 21. 如何使用where子句計算mysql的平均值
- 22. Neo4j 2.0如何計算CASE子句中的關係?
- 23. 如何計算R中文本中的句子數?
- 24. MySQL如何使用where子句只爲count計算左連接?
- 25. 如何計算SQLite中一個句子的序列數量?
- 26. 如何用LSA計算句子之間的相似度?
- 27. 如何計算python中段落中句子的數量
- 28. 如何使用Perl regExp來計算句子?
- 29. 如何在where子句中使用sum來計算avg
- 30. 如何在Laravel雄辯中計算列的WHERE子句?
你如何定義一個句子? – Nobody
Well'count(explote('。',rtrim($ str,'。')))'似乎是一個好起點... – DaveRandom
請檢查更新。 @Nobody –