解析名称值对的正则表达式 [英] Regular expression for parsing name value pairs

查看:59
本文介绍了解析名称值对的正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以提供一个正则表达式来解析字符串中的名称/值对吗?这些对由逗号分隔,并且可以选择将值括在引号中.例如:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆