搜索包含';X';然后替换第四个元素Regex

搜索包含';X';然后替换第四个元素Regex,regex,notepad++,Regex,Notepad++,我有几个表要更新。当第一个元素与某个字符串匹配时,我需要更新每个表的第四个元素 示例表(Lua): 表={ {TEXT1,0,4,0,0,0,0}, {TEXT2,0,4,0,0,0,0}, {TEXT3,0,5,0,0,0,0}, {TEXT1,0,5,0,0,0,0}, {TEXT1,0,4,0,0,0,0}, {TEXT4,0,5,0,0,0,0} } 我可以使用以下选项仅选择包含元素“TEXT1”的表: 我还可以使用以下语句选择第四个和第五个逗号之间的内容: ^[^,]*,[^,]*,

我有几个表要更新。当第一个元素与某个字符串匹配时,我需要更新每个表的第四个元素

示例表(Lua):

表={
{TEXT1,0,4,0,0,0,0},
{TEXT2,0,4,0,0,0,0},
{TEXT3,0,5,0,0,0,0},
{TEXT1,0,5,0,0,0,0},
{TEXT1,0,4,0,0,0,0},
{TEXT4,0,5,0,0,0,0}
}
我可以使用以下选项仅选择包含元素“TEXT1”的表:

我还可以使用以下语句选择第四个和第五个逗号之间的内容:

^[^,]*,[^,]*,[^,]*,[^,]*,\K(.*?)(?=,\d)
不过,我不知道如何同时使用这两个表达式


因此,基本上,我想在每个以字符串“TEXT1”开头的表中替换
0
,但是如何组合语句来检查所需的文本,然后只选择该表中的第四个元素?

您可以使用
^\{TEXT1,([^,]+,){3}\K[^,]+
选择要查找的元素,然后替换为任何您喜欢的元素。替换为
999
将使您的表变成

TABLE = {

{TEXT1,0,4,0,999,0,0},
{TEXT2,0,4,0,0,0,0},
{TEXT3,0,5,0,0,0,0},
{TEXT1,0,5,0,999,0,0},
{TEXT1,0,4,0,999,0,0},
{TEXT4,0,5,0,0,0,0}

}

请注意,在标题中要求使用第四个元素,但您的正则表达式选择第四个和第五个逗号之间的元素,这是第五个元素,在此处使用。还请注意,如果表格在任何位置包含的元素少于六个,您可能希望将
[^,]
替换为
[^,]

您可以使用
^{TEXT1([^,]+,){3}\K[^,]+
选择您要查找的元素,然后用您喜欢的任何元素替换它。替换为
999
将使您的表变成

TABLE = {

{TEXT1,0,4,0,999,0,0},
{TEXT2,0,4,0,0,0,0},
{TEXT3,0,5,0,0,0,0},
{TEXT1,0,5,0,999,0,0},
{TEXT1,0,4,0,999,0,0},
{TEXT4,0,5,0,0,0,0}

}

请注意,在标题中要求使用第四个元素,但您的正则表达式选择第四个和第五个逗号之间的元素,这是第五个元素,在此处使用。另外请注意,如果表格在任何位置包含的元素少于六个,您可能希望将
[^,]
替换为
[^,\n\r]

非常好的答案(+1)-虽然
notepad++
支持
\K
吗?@Jan是的,它支持。回答得很好(+1)-尽管
notepad++
支持
\K
吗?@Jan是的,它支持。