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++_Textpad - Fatal编程技术网

Regex 正则表达式-找到一个字符串并立即跳到下一行

Regex 正则表达式-找到一个字符串并立即跳到下一行,regex,notepad++,textpad,Regex,Notepad++,Textpad,例如,我正在一个更大的文本文件中寻找一些东西-非常简单,例如一个三位数的字符串,带有\d{3}。我想做的是:当记事本++/textpad在一行中找到第一个匹配的字符串(并替换为其他字符串)时,它应该立即跳转到下一行 我怎样才能做到这一点 我尝试了\r\n,但在这种情况下,textpad不会找到行中有三位数字的第一个字符串,而是始终找到最后一个。记事本++根本找不到任何东西 我不能使用^,因为在我试图查找和替换的数字之前有一些随机词(一、二、三甚至是u或五) 感谢您的帮助。要做到这一点,您必须将您

例如,我正在一个更大的文本文件中寻找一些东西-非常简单,例如一个三位数的字符串,带有
\d{3}
。我想做的是:当记事本++/textpad在一行中找到第一个匹配的字符串(并替换为其他字符串)时,它应该立即跳转到下一行

我怎样才能做到这一点

我尝试了
\r\n
,但在这种情况下,textpad不会找到行中有三位数字的第一个字符串,而是始终找到最后一个。记事本++根本找不到任何东西

我不能使用
^
,因为在我试图查找和替换的数字之前有一些随机词(一、二、三甚至是u或五)


感谢您的帮助。

要做到这一点,您必须将您的所有剩余线路都包含在匹配模式中

例如,假设您搜索
\d{3}
,并具有以下数据:

qweqwe 123 rrr 445
test tetst
41 423 456
搜索
\d{3}(.*$)

更换
更换$1

将为您提供以下结果:

qweqwe REPLACEMENT rrr 445
test tetst
41 REPLACEMENT 456
如果没有包含剩余的行(
*
),结果将是:

qweqwe REPLACEMENT rrr REPLACEMENT
test tetst
41 REPLACEMENT REPLACEMENT

在记事本++中,若要执行此操作,必须取消选中“.matches newline”选项。

是,此操作非常有效!谢谢为什么使用$作为行尾,而不是$作为行首?您也可以使用
^
,例如搜索:
^(.*)\d{3}
,替换:
$1REPLACEMENT
将产生相同的结果!请注意,现在我们必须使用
*?
这是一种非贪婪(又称惰性)匹配。我选择
$
的唯一原因是,如果我用文字来描述它,它比
^
更接近您的标题“查找模式并跳到下一行”,我将其描述为“匹配每行中第一次出现的模式”。