解析名称值对的正则表达式 [英] Regular expression for parsing name value pairs
本文介绍了解析名称值对的正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人可以提供一个正则表达式来解析字符串中的名称/值对吗?这些对由逗号分隔,并且可以选择将值括在引号中.例如:
Can someone provide a regular expression for parsing name/value pairs from a string? The pairs are separated by commas, and the value can optionally be enclosed in quotes. For example:
AssemblyName=foo.dll,ClassName="SomeClass",Parameters="Some,Parameters"
推荐答案
无法逃脱:
/([^=,]*)=("[^"]*"|[^,"]*)/
键和值的双引号转义:
/((?:"[^"]*"|[^=,])*)=((?:"[^"]*"|[^=,])*)/ 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:添加了另一个转义替代方案.
Added another escaping alternative.
您必须通过删除任何转义字符和周围的引号来清理键/值.
You would have to clean up the keys/values by removing any escape-characters and surrounding quotes.
这篇关于解析名称值对的正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文