正则表达式匹配语句
问题描述:
我有以下声明:正则表达式匹配语句
(({ dbo.Document.MimeType_ID in (select ID from MimeType where Name ='PDF')} Or { dbo.WorkflowItem.CurrentStateName not like 'On_Hold%'}) And ({ dbo.DocumentMetaData.Field_ID=74 And dbo.DocumentMetaData.FieldValue Not like '%test%'} And { dbo.Document.FileName='karan'}))
我想在4所陈述{}
如
dbo.Document.MimeType_ID in (select ID from MimeType where Name ='PDF')
dbo.WorkflowItem.CurrentStateName not like 'On_Hold%'
dbo.DocumentMetaData.Field_ID=74 And dbo.DocumentMetaData.FieldValue Not like '%test%'
dbo.Document.FileName='karan'
答
此正则表达式就可以了(如果没有嵌套模式)
\{\s*([^}]+)\s*\}
C#代码
string input = "(({ dbo.Document.MimeType_ID in (select ID from MimeType where Name ='PDF')} Or { dbo.WorkflowItem.CurrentStateName not like 'On_Hold%'}) And ({ dbo.DocumentMetaData.Field_ID=74 And dbo.DocumentMetaData.FieldValue Not like '%test%'} And { dbo.Document.FileName='karan'}))";
string pattern = "\\{\\s*([^}]+)\\s*\\}";
Regex rgx = new Regex(pattern);
Match match = rgx.Match(input);
while (match.Success)
{
Console.WriteLine(match.Groups[1].Value);
match = match.NextMatch();
}
是有嵌套模式?此外,我会建议你使用的解析器 – rock321987
不,它不是嵌套模式,实际上是其前进的搜索公式,现在我要恢复搜索,我简单的要求是如何得到{} –
是https://regex101.com之间的所有语句/ r/tQ9bY6/2好? – rock321987