搜索包含"X"的每一行,然后替换第四个元素正则表达式



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

示例表(在 Lua 中(:

TABLE = {
{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"的表:

(?=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}
}

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

最新更新