Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 记事本中的正则表达式++;以文本开始,以递增数字结束_Regex_Notepad++ - Fatal编程技术网

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+
的内容,以便在行首后留出一些喘息空间。这通常不会真正造成伤害,并有助于跳过隐藏的字符。