繁体   English   中英

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 ++版本和所有内容 notworking

每个捕获组(…)被分配一个数字,因此$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM