如何使用正则表达式来分割格式字符串?

时间:2012-06-26 16:09:21

标签: regex

我想使用正则表达式将像@key='value'这样的字符串拆分为键和值。

我的正则表达式为[^@'=]+[^'=],当键的长度和值为>时输出正常。 1,但有时当长度只有1个字符时,输出不正确。

有人可以建议改进我的正则表达式吗?

3 个答案:

答案 0 :(得分:1)

如果你想捕获键和值,你可以试试这个:

/^@([^=]+)='([^']+)'$/

然后你将获得$ 1中的密钥和$ 2中的值。

修改

我想我明白你在做什么。将您的正则表达式简单地更改为[^@'=]+以查看差异。但是,除非您告诉我们您正在使用的语言和示例代码,否则我们无法告诉您。

答案 1 :(得分:1)

^@[A-Za-z0-9]+\s*=\s*'[A-Za-z0-9\s]+'

This captures 
@Key = 'value'
@key='value' 
@k = 'value'

etc..

答案 2 :(得分:0)

\A@([^=]+)='([^']+)'  

将作为正则表达式,但它没有考虑到撇号的逃避。这是2个捕获组... \ A表示字符串的开头...然后@然后组....(不是=一个或多个)='组(不是')后跟'