我的内容是与json混合的文本
blablabla bla bla
sdf
sdfsdfsdf {
"glossary": [{
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
},
{
"val":2
}]
} dd dfsdfsdf
bla blablablabla
我想从字符串中获取json,所以我使用此正则表达式
\{(.|\s)+\}
它给了我(在https://regex101.com/上进行了检查):
我不明白是什么原因导致空组出现
答案 0 :(得分:0)
此空组是\s
捕获的最后一个新行符号。 Regex101甚至向您显示警告,当您使用类似(.)+
的正则表达式时,只有最后一次出现的.
被捕获为组。 您可以使用非捕获组 \{(?:.|\s)+\}
摆脱分组,也可以使用非捕获组并将第二个组放在量词\{((?:.|\s)+)\}
周围,只有一个组。
实际上,请不要这样做。请参阅下面的this评论和评论。