Regex 如果value有多个数据,如何使用Perl Regx解析[key=value]
我无法解决下面的问题,所以我使用Perl脚本来解析 没有正则表达式,但我相信有一个正则表达式 输入字符串(没有换行符): 预期产出: 我尝试了一些正则表达式来解析字符串,但解析失败 由于它有多个带有Regex 如果value有多个数据,如何使用Perl Regx解析[key=value],regex,perl,Regex,Perl,我无法解决下面的问题,所以我使用Perl脚本来解析 没有正则表达式,但我相信有一个正则表达式 输入字符串(没有换行符): 预期产出: 我尝试了一些正则表达式来解析字符串,但解析失败 由于它有多个带有,分隔值的项目。 例如,NameService有两个值A,PTR 请帮助我构建正则表达式来解析上面的内容。 (.+?=.*?)不拾取多个值。您可以使用此正则表达式匹配 (?<=^|,)(?<key>.*?)=(?<value>.*?)(?=,|$) (?一般来说,您的格
,
分隔值的项目。
例如,NameService有两个值A,PTR
请帮助我构建正则表达式来解析上面的内容。
(.+?=.*?)
不拾取多个值。您可以使用此正则表达式匹配
(?<=^|,)(?<key>.*?)=(?<value>.*?)(?=,|$)
(?一般来说,您的格式似乎并不明确-类似于A=B,C=D
可能意味着A
映射到B
,C
映射到D
,或者A
映射到B,C=D
-但是为了更好的近似,您可以编写:
my @output = split /,(?=\w+=)/, $input;
这将在逗号(,
)上拆分$input
,并附加限制,即逗号后面必须有一个或多个“单词字符”(\w
-字母、数字、下划线)加上等号。(这称为a)。是“键”已修复?顺序是否已修复?您不能用一个示例来制定格式规范。如果关键字名称和顺序已修复,则很容易:(当您要编辑问题时,请单击“编辑”链接,而不是关闭问题并打开新问题。(优先级>10k的问题,请参阅)@鲁克:哦,你在那篇文章上写了什么吗?很抱歉……+1.我比我更喜欢这篇。:)我想得太多了,或者什么的;这比必须匹配整个模式要简单得多。
(?<=^|,)(?<key>.*?)=(?<value>.*?)(?=,|$)
my @output = split /,(?=\w+=)/, $input;