c# - 在括号之间捕获并按字符拆分

标签 c# regex

我有这个正则表达式:{([^}]+)}

它成功捕获括号内容,例如 你好,{foo} 和 {bar}

我还想捕获由字符分隔的匹配项中的组,例如 你好 {foo:bar} 和 {hello:world}

前者会在 {foo:bar} 上与组 {foo}{bar} 产生匹配,而后者 {hello:world} 与组 {hello}{world}

我不精通正则表达式,我试过这个:{([^}]+)(:([^}]))?}{( [^}]+)(\:([^}]))?} 如果 : 是特殊字符。

我需要进行哪些修改才能成功?

最佳答案

要匹配两种类型的字符串,您可以使用

{([^{}:]+)(?::([^{}]+))?}

参见 regex demo

详情

  • { - { 字符
  • ([^{}:]+) - 第 1 组:{} 以外的一个或多个字符:
  • (?::([^{}]+))? - 一个可选序列:
    • : - 冒号
    • ([^{}]+) - 第 2 组:除 {}
    • 之外的 1+ 个字符
  • } - } 字符。

关于c# - 在括号之间捕获并按字符拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516343/

相关文章:

c# - WCF 路由服务 channel 关闭

c# - 无法使用 Elmah MVC 在生产服务器上访问/elmah?

c# - JSON.NET 干扰 MSChart 日期

Java正则表达式来匹配url的域

c# - 由于对象的当前状态,操作无效。使用 dotnet core 5 在 eventhub 中获取 microsoft.azure.amqp

c# - 使用 Redemption (RDO) 发送邮件

javascript - 将 Javascript 正则表达式转换为 PHP 正则表达式?

javascript - 正则表达式:将标题 =""添加到 <img> 标签,但如果 <img> 位于 &lt;script&gt; 标签之间,则不添加标题 0x104567910

javascript - 将大括号内的所有文本提取到字符串数组中

ruby - 从 SQL Server 2008 解析 CSV 的语义正确方法是什么?