C# 括号之间的捕获和按字符分割
我有一个正则表达式:C# 括号之间的捕获和按字符分割,c#,regex,C#,Regex,我有一个正则表达式:{([^}]+)} 它成功捕获括号内容,例如。 你好{foo}和{bar} 我还想捕获由角色分隔的匹配中的组,例如。 hello{foo:bar}和{hello:world} 前者将在{foo:bar}上与组{foo}和{bar}进行匹配,后者将与组{hello:world}和{world}进行匹配 我的正则表达式不太流利,我试过:{([^}]+)(:([^}])?}和{([^}]+)(\:([^}]))?},以防:是一个特殊字符 我需要进行哪些修改才能成功?要匹配这两种类型
{([^}]+)}
它成功捕获括号内容,例如。
你好{foo}和{bar}
我还想捕获由角色分隔的匹配中的组,例如。
hello{foo:bar}和{hello:world}
前者将在{foo:bar}
上与组{foo}
和{bar}
进行匹配,后者将与组{hello:world}
和{world}
进行匹配
我的正则表达式不太流利,我试过:{([^}]+)(:([^}])?}
和{([^}]+)(\:([^}]))?}
,以防:是一个特殊字符
我需要进行哪些修改才能成功?要匹配这两种类型的字符串,可以使用
{([^{}:]+)(?::([^{}]+))?}
见
详细信息
-a{
字符{
-组1:除([^{}:]+)
、{
和}
以外的一个或多个字符:
-可选序列:(?::([^{}]+)?
-冒号:
-第2组:除([^{}]+)
和{
}
-a}
字符}
(?:…)
)和([^…]
)的内容。