regex - 在Notepad++中,如何找到字符串的第n个出现位置

标签 regex notepad++

我有一个巨大的文本文件,其中的记录由字符串MSH标识。

我需要找到第200条记录。我希望可以在Notepad++中使用一个正则表达式,使我能够找到字符串MSH的第200个出现的位置。

最佳答案

如果您的文件只是一个巨大的单行,并且用字符串“MSH”分隔,则可以在正则表达式查找中使用它。

但是,请确保您的光标位于文件的开头,否则它只会从您开始的位置开始搜索下一个第200条记录!

找:

((.*?)MSH){199}



这应该突出显示前199条记录,因此下一个未突出显示的记录是第200条记录。

或者,再进一步一点!
再次,在正则表达式中找到replace,再次确保光标位于文件的开头。

找:

((.*?)MSH){199}((.*?)MSH{1}).*



代替:

$3



应该只用第200条记录替换窗口的全部内容。

N.B:假定字符串“MSH”不属于文件中任何记录的一部分。

作为一个脚注,我强烈怀疑这在大型文件中是否很快。几乎可以肯定,脚本是一个更好的选择。或者甚至可以将其放入Excel并使用文本到列。

关于regex - 在Notepad++中,如何找到字符串的第n个出现位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863802/

相关文章:

python - 使用 Python 正则表达式从字符串中提取十进制数

python - 编辑器(Sublime、Notepad++等)粘贴 'around'现有文本

正则表达式删除重复的字母

notepad++ - 更改 Sublime Text 中的运算符颜色?

c# - 在公式中查找分隔点的正则表达式

regex - ag Silver Searcher : rules for lookahead/lookbehind patterns?

regex - 正则表达式从以特定字符串开头的行中删除空格

regex - 如何在 Notepad++ 中的所有行中替换 '='符号后的特定字符

javascript - 在一定字符长度后替换字符

python - 如何使用python Regular使宽度和高度x2