C# 如何使用正则表达式匹配多个项目

C# 如何使用正则表达式匹配多个项目,c#,regex,C#,Regex,我有下面的模式{(.*)},它只匹配1项 如何从本文中匹配C#中的多个项目 akjsd{OrderNumber}aksjd{PatientName}aksjak sdj askdj {PatientSurname}askdjh askdj{patientsnumber}aksjd aksjd aksjd kajsd 卡斯德 获得列表 {OrderNumber} {PatientName} {PatientSurname} {PatientNumber} 谢谢大家! 大概是这样的吧 string

我有下面的模式
{(.*)}
,它只匹配1项

如何从本文中匹配C#中的多个项目

akjsd{OrderNumber}aksjd{PatientName}aksjak sdj askdj {PatientSurname}askdjh askdj{patientsnumber}aksjd aksjd aksjd kajsd 卡斯德

获得列表

{OrderNumber}

{PatientName}

{PatientSurname}

{PatientNumber}


谢谢大家!

大概是这样的吧

string input = "akjsd{OrderNumber} aksjd {PatientName} aksjak sdj askdj {PatientSurname} askdjh askdj {PatientNumber} aksjd aksjd aksjd kajsd kasjd";
MatchCollection matches = Regex.Matches(input, "{(.*?)}");

foreach(Match match in matches)
{
    Console.WriteLine(match.Value);
}

使用此正则表达式
{[^}]*}
(更有效,因为
*?
在每一步都回溯),并按如下方式执行:

var resultList = new StringCollection();
var myRegex = new Regex("{[^}]*}", RegexOptions.Multiline);
Match matchResult = myRegex.Match(yourString);
while (matchResult.Success) {
    resultList.Add(matchResult.Value);
    Console.WriteLine(matchResult.Value);
    matchResult = matchResult.NextMatch();
    } 

这很有效,看@AvinashRaj哦!这里不行,谢谢!!!这里有一个类似问题的先前答案:@ClarkKent-see@AvinashRaj-Oh!我得到了它。我没有使用
/g
非常感谢!