当前位置:  开发笔记 > 编程语言 > 正文

用于解析名称值对的正则表达式

如何解决《用于解析名称值对的正则表达式》经验,为你挑选了1个好方法。

有人可以提供正则表达式来解析字符串中的名称/值对吗?这些对用逗号分隔,值可以用引号括起来.例如:

AssemblyName=foo.dll,ClassName="SomeClass",Parameters="Some,Parameters"

Markus Jarde.. 35

无处可逃:

/([^=,]*)=("[^"]*"|[^,"]*)/

键和值的双引号转义:

/((?:"[^"]*"|[^=,])*)=((?:"[^"]*"|[^=,])*)/

key=value,"key with "" in it"="value with "" in it",key=value" "with" "spaces

反斜杠字符串转义:

/([^=,]*)=("(?:\\.|[^"\\]+)*"|[^,"]*)/

key=value,key="value",key="val\"ue"

完全反斜杠逃脱:

/((?:\\.|[^=,]+)*)=("(?:\\.|[^"\\]+)*"|(?:\\.|[^,"\\]+)*)/

key=value,key="value",key="val\"ue",ke\,y=val\,ue

编辑:添加了转义替代品.

Edit2:添加了另一个转义替代方案.

您必须通过删除任何转义字符和周围的引号来清理键/值.



1> Markus Jarde..:

无处可逃:

/([^=,]*)=("[^"]*"|[^,"]*)/

键和值的双引号转义:

/((?:"[^"]*"|[^=,])*)=((?:"[^"]*"|[^=,])*)/

key=value,"key with "" in it"="value with "" in it",key=value" "with" "spaces

反斜杠字符串转义:

/([^=,]*)=("(?:\\.|[^"\\]+)*"|[^,"]*)/

key=value,key="value",key="val\"ue"

完全反斜杠逃脱:

/((?:\\.|[^=,]+)*)=("(?:\\.|[^"\\]+)*"|(?:\\.|[^,"\\]+)*)/

key=value,key="value",key="val\"ue",ke\,y=val\,ue

编辑:添加了转义替代品.

Edit2:添加了另一个转义替代方案.

您必须通过删除任何转义字符和周围的引号来清理键/值.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有