0

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

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

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

4

3 回答 3

1

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

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

然后,您将拥有 $1 中的密钥和 $2 中的值。

编辑:

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

于 2012-06-26T16:16:32.287 回答
1
^@[A-Za-z0-9]+\s*=\s*'[A-Za-z0-9\s]+'

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

etc..
于 2012-06-26T16:34:09.497 回答
0
\A@([^=]+)='([^']+)'  

将作为正则表达式工作,但它不考虑转义撇号。这是 2 个捕获组... \A 表示字符串的开头...然后是 @ 然后是组...。(不等于一个或多个)=' Group(not ' ) 后跟 '

于 2012-06-26T16:14:49.153 回答