找到某個字符串在哪一行上的最佳方法是什麼?我知道我可以遍歷所有的行,但是捕獲的是被搜索的字符串可能是多行的。例如,這可以通過正則表達式解決嗎? 謝謝查找行號某些文本是
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. 什麼是fastes查詢來查找某些行的存在
- 3. 行查找一些具體的行號
- 4. VBA Selenium通過文本查找行號
- 5. 如何查找文件中的某些單詞然後執行某些操作?
- 6. 某些文本的PHP檢查文件
- 7. 閱讀文本文件的某些行
- 8. 找出某個ID本身是否具有某些文本部分
- 9. 查找包含特定文本和某些家長
- 10. 查找包含圖像的某些文本
- 11. 查找id不包含某些字符的所有文本框
- 12. 檢查DataGridView的某些文本
- 13. Excel CountIf查找某些日期的號碼
- 14. 查找文本並在某個點查看文本
- 15. 在UNIX/VIM,替代某些文本,如果行中包含某些文字
- 16. 解析文本文件一行行,跳過某些行
- 17. 在其他條件行之後查找某些條件的行
- 18. 顯示某些文本
- 19. Python - 從文本文件中查找行號
- 20. 查找帶有某些文件擴展名的文件C++
- 21. 找到該行中的某些文本,然後用C#返回該行#
- 22. SQL查找某些ID和填充
- 23. SSIS查找 - 忽略某些記錄
- 24. 在左括號之間查找文本
- 25. 源腳本或某些腳本行
- 26. 的FileMaker腳本 - 如何執行查找和刪除某些記錄
- 27. 用於檢查文本中某些單詞的SQL查詢
- 28. 使用符號鏈接替換某些文件的shell腳本
- 29. 文本溢出:省略號不能使用某些字體?
- 30. 如何配置log4j以某些文本開始並以某些文本結束?
如果使用帶有preg_match的PREG_OFFSET_CAPTURE標誌,那麼你的問題就會從找到一個字符串在哪一行到找到它的第一個字符在哪一行上。 – 2010-11-05 17:33:15
如果你能提供一個測試用例,可能會更容易解決這個問題......也許像15行文本和兩個示例「搜索字符串」? – gnarf 2010-11-05 17:33:15