![](/img/trans.png)
[英]Regex to find a word and replace with a line containing the word in notepad++
[英]notepad++ regex replace word in first line
我正在尝试使用以下正则表达式在记事本++中搜索和替换多个文件
([^\n]*)(state="1")([^\n]*)*.
这会在每个文件的第一行中搜索并找到state =“ 1”,并且工作正常。
但是,当我尝试使用以下方法替换state =“ 1”时:
Replace with: $1 state="5"
它切断了其余部分。
我认为可能可以使用以下方法获得其余内容:
Replace with: $1 state="5" $2
但是,$ 2似乎不作为变量存在。
有没有办法将行的其余部分附加到变量$ 2中?
干杯
这是一张图片,显示(?= \\ A [^ \\ n] *)state =“ 1”无效
Ive更新了我的notepad ++版本和所有内容
每个捕获组(…)
被分配一个数字,因此$2
表示第二个捕获组(state="1")
。 该行的其余部分在$3
捕获。
要么删除state="1"
周围的捕获组:
([^\n]*)state="1"([^\n]*)*.
或使用$3
:
Replace with: $1 state="5" $3
而且,鉴于任务的简单性,我不明白为什么您不能只搜索state="1"
并替换为state="5"
。 在这里似乎不需要任何正则表达式。
更新到目前为止,列出的模式中没有任何内容将结果限制为仅与第一行中的字符串匹配。 如果您需要,我建议您使用如下模式:
(?=\A[^\n]*)state="1"
使用以下设置:
更新后面的\\A
(文本开头)锚似乎有一些奇怪的行为。 从后方移除似乎很有效。 试试这个模式:
\A([^\n]*)state="1"
并替换为:
$1state="5"
所有其他设置都可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.