我正在尝试更新几个表。当第一个元素与某个字符串匹配时,我需要更新每个表的第四个元素。
示例表(在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
,但是如何组合我的语句来检查所需的文本,然后选择第四个元素只有桌子?
答案 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}
}
替换为[^,]
。