当前位置: 首页 > 知识库问答 >
问题:

在括号中捕获并按字符分割

翟泰
2023-03-14

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

它成功地捕获了括号中的内容,例如,hello{foo}和{bar}

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

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

我的正则表达式不太流利,我试过:{([^}])(:([^}])?} {([^}])(\:([^}])?} 如果:是特殊字符。

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


共有1个答案

晏华奥
2023-03-14

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

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

查看正则表达式演示

详细信息

  • {-a{char
 类似资料:
  • 当我使用之类的东西时,它仍然会触发,就像连字符无效一样。我尝试了和

  • 问题内容: 我有一个样本字符串 我只想要该值而不是(在另一个内部) 如何在Python中以最简单的方式做到这一点?也许通过使用RegEx(我不擅长)? 问题答案: 怎么样: 对我来说,这打印: 请注意,调用会找到与正则表达式的第一个匹配项,因此除非您再次重复搜索,否则它将不会找到。 编辑: 这里的正则表达式是python原始字符串文字,基本上意味着反斜杠不会被视为特殊字符,而是会原样传递给方法。正

  • 问题内容: 我从来不是一个正则表达式大师,所以我需要您的帮助!我有一个像这样的字符串: 我想使用空格作为定界符来分割此字符串-但我不想分割在方括号内出现的空格。因此,从上面的示例中,我想要这个数组: 关于什么正则表达式的任何建议可以结合使用以实现这一目标? 这是另一个例子: 变成 问题答案: 我认为这应该起作用,使用负前瞻 -不匹配在没有括号的情况下关闭括号之前没有的空格: 对于嵌套的括号,您将需

  • 问题内容: 当我使用某种方式时,它仍然会触发,好像连字符无效。我试着和 问题答案: 转义使用应该没问题,但是您也可以尝试将其放在字符类的开头或结尾。这应该为您工作:

  • 期望的行为 我有一个输入验证,除其他外,测试长度(

  • 问题内容: 我想以逗号分隔Python多行字符串,除非逗号在方括号内。例如,字符串 应该分成 这涉及到括号匹配,因此正则表达式可能在这里没有帮助。PyParsing有这 几乎 做什么我需要的,只是 引用 ()环境得到保护,而不是-delimited的。 有什么提示吗? 问题答案: 编写自己的自定义拆分功能: