搜索包含'X'的每一行,然后替换第四个元素Regex

时间:2017-03-26 08:47:33

标签: regex notepad++

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

示例表(在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,但是如何组合我的语句来检查所需的文本,然后选择第四个元素只有桌子?

1 个答案:

答案 0 :(得分:2)

您可以使用#include <iostream> using namespace std; int main() { int arr[20], i, n, sum=0; cout<<"How many elements you want to enter?: "; cin>>n; cout<<"Enter any "<<n<<" elements in Array: "; for(i=0;i<n;i++) cout<<"How many elements you want to enter?: "; cin>>n; cout<<"Enter any "<<n<<" elements in Array: "; for(i=0;i<n;i++) { cin>>arr[i]; } cout<<"Sum of all Elements are: "; for(i=0;i<n;i++) { sum=sum+arr[i]; } for(i=0;i<n;i++) { cout<<sum; getch(); } 选择您所追求的元素,然后将其替换为您喜欢的任何元素。按^\{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} } 替换为[^,]