Regex 记事本中的正则表达式++;以文本开始,以递增数字结束
我在阅读教程时试图理解这一点,并将其应用到我正在做的事情中 我有一个文件,其中有几行文字,如:Regex 记事本中的正则表达式++;以文本开始,以递增数字结束,regex,notepad++,Regex,Notepad++,我在阅读教程时试图理解这一点,并将其应用到我正在做的事情中 我有一个文件,其中有几行文字,如: line1blahblahblahblah line2blahblahblahblah ... line10blahblahblahblah 我想进入并删除行及其后的数字(每行递增1-1000),并将其替换为新文本,保留后面的所有文本 有人能解释一下正则表达式的用法吗?搜索 ^line\d+ 并替换为空字符串 说明:^匹配行首,行匹配文字字符序列,\d匹配任何数字字符。+后面的\d使其与一个或多个
line1blahblahblahblah
line2blahblahblahblah
...
line10blahblahblahblah
我想进入并删除行
及其后的数字(每行递增1-1000),并将其替换为新文本,保留后面的所有文本
有人能解释一下正则表达式的用法吗?搜索
^line\d+
并替换为空字符串
说明:^
匹配行首,行
匹配文字字符序列,\d
匹配任何数字字符。+
后面的\d
使其与一个或多个数字字符匹配
您的记事本++搜索面板应如下所示:
你试过什么吗?我试过阅读关于如何使用正则表达式搜索和替换的教程,但没有真正理解,因此我需要对我的具体情况进行更详细的解释。你可能需要考虑
^\a
,因为有时候^
在开始时并不适合所有类型的文件编码文件(字符串)本身。对于剩下的答案+1:)谢谢你先生的详细解释!你是上帝派来的。@Allendar,我从来没有遇到过。你能举一个会导致异常行为的编码的例子吗;如果使用错误的UTF-8/UTF-16编码打开俄文或中文编码的文件,文件的解释通常仍然可以,但如果某些字符不匹配(UTF可能将16字节的中文解释为2个UTF-8字符),则可能会导致BOF
或类似NULL
的内容。发生这种情况时,^
后跟行
将失败。出于某种奇怪的原因,\Aline
在这种情况下对我有效,因为它似乎忽略了开始时的x00
值。这也证明了正则表达式不会显式读取字节/十六进制,但也会进行解释。因此,编码问题最好通过读取十六进制/二进制的内容来解决。通过这种方式,您可以去除已知的恶意字符,以防止正则表达式神奇地失败,因为许多编辑器永远不会显示此类隐藏字符。最后您还可以添加类似于^.{0,6}line\d+
的内容,以便在行首后留出一些喘息空间。这通常不会真正造成伤害,并有助于跳过隐藏的字符。