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

本文关键字:项目 何用 正则表达式 | 更新日期: 2023-09-27 18:13:03

我有以下模式{(.*?)},它只匹配一个项目。

如何匹配c#中的多个项目

akjsd{OrderNumber} aksjd {PatientName} akjak sdj askdj{patient姓氏}askdjh askdj {PatientNumber} aksjd aksjd aksjd aksjd kajsdkasjd

获取类似

的列表

{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();
    }