找到某個字符串在哪一行上的最佳方法是什麼?我知道我可以遍歷所有的行,但是捕獲的是被搜索的字符串可能是多行的。例如,這可以通過正則表達式解決嗎? 謝謝查找行號某些文本是
0
A
回答
1
它是可以解決的。首先搜索所有行被一次搜索到的模式,例如\n
。然後計算它之前的\n
的數量。
0
好吧,如果你在談論一個文件的最佳方式,它遍歷:
$lines = 0;
while ($line = fgets($f)) {
$lines++;
if (stripos($line, $searchWord) !== false) {
$foundOnLine = $lines;
break;
}
}
但如果它是一個字符串,你可以做一個黑客的一點點(其之前找到的文本比賽,然後返回匹配的數量):
$foundOnLine = preg_match_all('#\n#', stristr($string, $searchWord, true), $a);
但是請注意,它會返回線0
兩個未找到,在串並發現,上一線。如果要區分它們:
$found = function($string, $searchWord) {
$pretext = stristr($string, $searchWord, true);
$a = null;
return $pretext === false ? false : preg_match_all('#\n#', $pretext, $a);
}
,將返回false
如果沒有找到,或者0
如果在第一線......
0
我總是儘量避免循環時,我可以
無迴路...
function getLine($haystack, $needle) {
return substr_count(substr($haystack, 0, strpos($haystack, $needle)), "\n") + 1;
}
相關問題
- 1. 查找某些文本
- 2. 查找某些文本,並添加CSS
- 3. 如何查找引號之間的某些文本
- 4. 檢查某些文本是否僅包含某些模式
- 5. 查找某些文本並過濾出其他文本
- 6. 查找某些文本,並獲得完整的文本
- 7. Bat文件在.txt文件中查找某些文本
- 8. 什麼是fastes查詢來查找某些行的存在
- 9. 行查找一些具體的行號
- 10. 如何查找文件中的某些單詞然後執行某些操作?
- 11. VBA Selenium通過文本查找行號
- 12. 查找某些字符的文件名
- 13. 某些文本的PHP檢查文件
- 14. 在XML文件中查找並替換某個節點中的某些文本
- 15. Greasemonkey腳本查找某些條件的行
- 16. 記事本++查找和替換,刪除某些行
- 17. 找出某個ID本身是否具有某些文本部分
- 18. 查找包含圖像的某些文本
- 19. 查找包含特定文本和某些家長
- 20. 查找id不包含某些字符的所有文本框
- 21. 在某些文本中查找時間,允許多種格式
- 22. 忽略某些文本框在查詢
- 23. 檢查某些文本並添加類
- 24. 檢查DataGridView的某些文本
- 25. 找到3個某些行
- 26. 在Python中查找和寫入某些文件中的某些文字
- 27. 找出類名是否包含某些文本
- 28. 如何檢查文本文件中的某行是否包含引號?
- 29. 刪除文本框中的某些行
- 30. 的XPath找到某個節點與某些文本
如果使用帶有preg_match的PREG_OFFSET_CAPTURE標誌,那麼你的問題就會從找到一個字符串在哪一行到找到它的第一個字符在哪一行上。 – 2010-11-05 17:33:15
如果你能提供一個測試用例,可能會更容易解決這個問題......也許像15行文本和兩個示例「搜索字符串」? – gnarf 2010-11-05 17:33:15