gpt4 book ai didi

c# - 提取单花括号内的值

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:14 24 4
gpt4 key购买 nike

我想使用正则表达式获取字符串的集合{value}

例如:

lorem ipsum {field1} lorem ipsum {field2} lorem ipsum field1 lorem ipsum field2 {{field3}}

我会得到:{field1} 和 {field2}

我试试这个:

string pattern =@"\[(?>[^\{\}]+)*\]";

MatchCollection matches = Regex.Matches(text, pattern);
for (int ctr = 0; ctr < matches.Count; ctr++)
{
string field = matches[ctr].Value;
// ... ommitted...
}

有什么建议吗?

最佳答案

您可以使用否定环视来仅获取 {...}没有 { 的子串在前面或 }在他们之后:

(?<!{){[^{}]+}(?!})

参见 regex demo

enter image description here

  • (?<!{) - 如果存在 {,则对匹配失败进行负面回顾在当前位置之前
  • { - 文字 {
  • [^{}]+ - 除 { 以外的 1 个或多个符号和 }
  • } - 文字 }
  • (?!}) - 如果存在 },则否定前瞻会导致匹配失败就在前一个}之后.

关于c# - 提取单花括号内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com