我必须处理一个文件,该文件具有以下格式的行:
{name:value}
:
,可以使用\
进行转义。:
是可选的,在这种情况下,只需要读取名称。:
不存在,则值丢失。该值还可以包含}
,可以使用\
进行转义。因此,有效值为:
{john:nice person}
{john}
我使用了此正则表达式:
{(?<name>.*?(?=(?<!\\)\:))(?<separator>:?)(?<value>.*?(?=(?<!\\)\}))}
适用于第一种格式,但如果格式为{name},但没有分隔符和值,则失败。有什么想法可以修改正则表达式以读取两种格式吗?