找到某个字符串在哪一行上的最佳方法是什么?我知道我可以遍历所有的行,但是捕获的是被搜索的字符串可能是多行的。例如,这可以通过正则表达式解决吗? 谢谢查找行号某些文本是
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