C# 正则表达式匹配问题
我想匹配这个模式:[k1,v1][k2,v2] k1…kn不能为空,而v1…vn可以为空 [k,v]可以重复1次以上C# 正则表达式匹配问题,c#,.net,regex,C#,.net,Regex,我想匹配这个模式:[k1,v1][k2,v2] k1…kn不能为空,而v1…vn可以为空 [k,v]可以重复1次以上 我写了这个,但它不起作用:^(?=\[)。+(?似乎你想要这样的东西 @"^(?:\[[^,\]]+(?:,[^\]]+)?\])+$" 解决方案:@“^(?:\[^,\]+(?:,[^\]+)?\]+$” 说明: 在字符串开头断言位置^ 匹配下面的正则表达式(?:\[[^,\]+(?:,[^\]]+)+ 在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)+ 按字面意思匹配字
我写了这个,但它不起作用:
^(?=\[)。+(?似乎你想要这样的东西
@"^(?:\[[^,\]]+(?:,[^\]]+)?\])+$"
解决方案:@“^(?:\[^,\]+(?:,[^\]+)?\]+$”
说明:
在字符串开头断言位置^
匹配下面的正则表达式(?:\[[^,\]+(?:,[^\]]+)+
在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)+
按字面意思匹配字符“[”\[
匹配以下列表中不存在的任何单个字符[^,\]+
在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)+
文字字符“,”,
文字字符“]”\]
匹配下面的正则表达式(?:,[^\]]+)?
在0到1次之间,尽可能多次,根据需要回馈(贪婪)?
匹配字符“,”,
匹配任何不是“]”的字符
在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)+
按字面意思匹配字符“]”
\]
在字符串末尾或字符串末尾的换行符(如果有)之前断言位置(换行)$
为了更有帮助,请给出投票被否决的原因。谢谢,伙计!这就是我想要的。从未想过不捕获组
(?:)
。似乎环顾四周还不够。我给你的答案添加了一些解释。希望你不介意。请添加正则表达式模式。你刚刚为我的正则表达式添加了一些解释。仅此而已。你可以从我答案的链接上得到同样的解释。接受你的答案而不是我的答案值得吗?