有一个来自 cli 命令的有效负载,它显示消息以及 json 字符串,如下所示
Provided bot name already exists in Resource Group. Returning bot information:
{
"name": "TestBot",
"id": "2306d087-3d65-489b-8cd8-4d1524305110",
...
}
有时,它只是简单地发送 json 字符串而没有任何额外的消息
{
"name": "TestBot",
"id": "2306d087-3d65-489b-8cd8-4d1524305110",
...
}
我需要一个正则表达式来解析消息:
{
字符(如果存在)。我目前拥有的正则表达式是
/^(.+?)[{]?/
,它适用于第一种情况,但不适用于第二种情况,因为{
不存在
提前致谢!
使用
{
量词使 ?
符号可选没有帮助
你可以试试这个:
^[^{].*(?=\n{)|^{(?:.|\n)+}$
在哪里
^[^{].*(?=\n{)
匹配变体 1 - 不以 {
开头的单行文本,但后跟以 {
^{(?:.|\n)+}$
匹配变体 2 - 多行,以 {
开始并以 }
请注意,不会检查这是否是正确的 JSON,左括号和右括号的数量是否匹配等。此外,如果您有可用的标志,则必须注意不要选择“多行”匹配,因为这会给你多场比赛。
只需更改为:
/^.(.+?)(\{|$)/s