正则表达式 C#,获取 2 个字符之间的所有内容,但仅当特定字符介于两者之间并且缺少其他一些字符时



我有这个正则表达式,它能够在方括号内找到所有内容,而忽略包含逗号和其他方括号的内容。

然而还没有完成,我现在要实现的是只找到方括号内至少包含一个"="符号的那些,如果没有,我不感兴趣。

当前正则表达式:

[([^,[]]+?)]

输入示例:

  • [测试=测试] ->匹配:[测试=测试]没关系
  • [测试=测试;测试2=测试2] ->匹配:[测试=测试;Test2=Test2]没关系
  • [测试,测试] -> 没有匹配,没关系
  • [T[E]
  • ST] -> 匹配: [E] 并且不正常(缺少等号)
  • [T
  • [E=S]T] -> 匹配: [E=S] 没关系

不确定我的方向是否正确,因为当某些角色不在里面时,我已经在 2 个字符内获取了所有内容......但是只有当特定角色存在时,如何告诉它..?

我希望有人能帮我一把,这个正则表达式让我发疯

谢谢

您可以使用

[([^][,=]*=[^][,]*)]

请参阅正则表达式演示。

  • [-[
  • ([^][,=]*=[^][,]*)- 第 1 组:
    • [^][,=]*- 除][,=以外的 0 个或多个字符
    • =- 等号
    • [^][,]*- 除][,以外的 0 个或多个字符
  • ]- 一个]字符。

相关内容

最新更新