【发布时间】:2019-07-24 15:42:09
【问题描述】:
我必须处理具有以下格式的一组行的文件:
{name:value}
- 名称可以包含
:,使用\进行转义。 -
:是可选的,在这种情况下只需要读取名称。 - 如果
:不存在,则缺少值。该值还可以包含使用\转义的}。
因此,有效值为:
{john:nice person}
{john}
我使用了这个正则表达式:
{(?<name>.*?(?=(?<!\\)\:))(?<separator>:?)(?<value>.*?(?=(?<!\\)\}))}
适用于第一种格式,但如果格式为 {name} 没有分隔符和值,则失败。任何想法如何修改正则表达式以读取两种格式?
【问题讨论】:
-
值是否可以存在,但为空,如
{john:}?
标签: regex regex-negation