檢查單詞串
回答
使用正則表達式處理此作業的一個好處是可以在正則表達式中使用\b
(Regexp word boundary)以及其他隨機推導。如果您只是在字符串中尋找字母序列stripos
很可能是小更好。
$tests = array("word", "worded", "This also has the word.", "Words are not the same", "Word capitalized should match");
foreach ($tests as $string)
{
echo "Testing \"$string\": Regexp:";
echo preg_match("/\bword\b/i", $string) ? "Matched" : "Failed";
echo " stripos:";
echo stripos("word", $string) >= 0 ? "Matched": "Failed";
echo "\n";
}
結果:
Testing "word": Regexp:Matched stripos:Matched
Testing "worded": Regexp:Failed stripos:Matched
Testing "This also has the word.": Regexp:Matched stripos:Matched
Testing "Words are not the same": Regexp:Failed stripos:Matched
Testing "Word capitalized should match": Regexp:Matched stripos:Matched
對於簡單的字符串匹配的PHP字符串函數提供更高的性能。正則表達式更重,因此性能更低。儘管如此,在大多數情況下,性能差異足夠小,不會被注意到,除非您在具有數十萬個或更多元素的數組上循環播放。
當然,只要你開始需要「聰明」匹配,正則表達式就成爲鎮上唯一的遊戲。
如果您只是在尋找子字符串,stripos()
或strpos()
和朋友比使用preg
功能家族好得多。
還有substr_count($haystack, $needle)
剛剛返回字符串出現次數的數量。如果第一次出現在位置0,則不需要擔心0等於false
,如stripos()
的附加獎勵。儘管如果使用嚴格的相等性,這不是問題。
像它說在Notes爲preg_match
:
不要使用的preg_match(),如果你只是想檢查一個字符串包含在另一個字符串。使用strpos()或strstr()來代替,因爲它們會更快。
strstr()函數區分大小寫。 – 2010-11-08 06:47:30
@Harish所以呢?如果您需要區分大小寫,請使用'stristr'或'stripos'。 – Gordon 2010-11-08 07:57:23
但stripos()函數將返回字符串中字母的位置,所以它在上述情況下沒有用處.. @Gordon – 2010-11-08 09:37:01
- 1. 檢查字符串中的單詞
- 2. 檢查單詞集合(pyenchant)
- 3. 使用preg_match檢查單詞
- 4. 檢查多個單詞
- 5. 檢查,如果單詞詞典[R
- 6. 檢查詞典中的單詞列表
- 7. 查找字符串中的單詞詞
- 8. 如何檢查字符串是單個單詞?
- 9. 檢查串詞的匹配文字
- 10. 檢查詞典鍵包含字符串
- 11. 檢查Swift字符串是否爲一個單詞
- 12. 檢查字符串中的第一個單詞是什麼
- 13. PHP Stripos檢查URL字符串中的兩個單詞
- 14. 檢查一個字符串是否包含特定單詞 - PHP
- 15. 如何檢查鏈接字符串是否包含單詞? (PHP)
- 16. 檢查列表包含在字符串中的所有單詞
- 17. 正確檢查單詞是否在字符串中?
- 18. Php檢查字符串是否包含多個單詞
- 19. 檢查一個字符串是否是英文單詞?
- 20. 檢查字符串是否包含ArrayList中的單詞之一
- 21. 如何檢查C中字符串中的重複單詞?
- 22. 檢查單詞的字符串存在由Oracle REGEXP_SUBSTR
- 23. 檢查字符串是否包含多個單詞
- 24. 檢查一個字符串包含在單詞中的Java
- 25. 檢查字符串,只包裝未包裝的單詞?
- 26. 如何檢查字符串上的某些單詞?
- 27. Javascript反轉一個單詞檢查迴文和空字符串
- 28. 檢查字符串是否包含數組中的單詞
- 29. 檢查字符串中以字符開頭的單詞@
- 30. 檢查字符串多個單詞(以任意順序)
我想你自己給出了答案......這將是微觀最優化,如果你會使用另一個函數來檢查該字是否出現在字符串中。 – Harmen 2010-10-20 21:37:42