正则表达式 - 如果开始匹配则匹配结束

got*_*tqn 5 .net c# regex sql t-sql

我想匹配以下字符串:

[anything can be here]
[{anything can be here}]
Run Code Online (Sandbox Code Playgroud)

我只能使用一个正则表达式来实现这一点吗?

我目前正在使用这个'^\[({)?.+(})?]$',但它也会匹配:

[anything can be here}]
[{anything can be here]
Run Code Online (Sandbox Code Playgroud)

我只需要匹配}才能匹配{.

请注意,我只能使用正则表达式匹配函数,因为我已将其实现为SQL CLR函数,以便在T-SQL语句中使用它.

Sam*_*Sam 2

我得到了这个工作:\[[^{].*[^}]\]|\[\{.*\}\]

正如OP所指出的,编辑 需要在括号之间,因此“一个或多个”匹配更适合:

\[[^{].+[^}]\]|\[\{.+\}\]

请参阅此处的正则表达式示例