regex - 正则表达式:在(文本)文件的某一行搜索字符串
问题描述
是否有正则表达式方法仅在特定行搜索给定(文本)文件?我正在使用工具“grepWin”。
例如,如果我的文本文件是:
This is the first line
This is the second line
This is the third line
This is the fourth line
如何在第三行中仅搜索并找到字符串“line”?
解决方案
有一种正则表达式方法,但您可能希望将文本拆分为split('\n')
(或类似的,具体取决于语言)。
无论如何,您将拥有您正在寻找的东西:
^(?<!\n)(?:.*?\n){2}[^\n]*?(line)
^
确保我们从一行的开头开始(?<!\n)
是一个消极的向后看,以确保当前行之前没有另一行(即我们从第一行开始计数)(?:...)
划定一个非捕获组。这不是比赛的相关部分.*?\n
匹配任何字符,直到遇到换行符(?
使表达式变得懒惰而不是贪婪){2}
是您要计算的换行数(基本上是您的行号减 1).*?(line)
匹配任何字符,直到下一次出现“line”
推荐阅读
- c++ - ifstream 使用和用户输入不输出要读取的内容
- tensorflow - TensorFlow 数据集:打乱文件名 VS 加载后打乱数据
- python - PySpark - 读取 SequenceFile 并将其转换为 DataFrame
- uwp - UART (PL011) Raspberry Pi 3 上的 Windows 10 IoT UWP
- r - 从 R 中的 CSV 读取数据并在箱线图中将其可视化
- vb.net - 插入数据库时出现内部异常错误 VB.Net
- c# - 使用数组中的数组对 JSON 进行反序列化
- sql-server - RuntimeError:不支持列的类型 numpy.ndarray(numpy.ustr)
- python - 无法在 selenium python 中的元素中输入文本
- bash - 如何使这个 bash 脚本不删除我的所有文件?