我想使用正则表达式将像@key='value'
这样的字符串拆分为键和值。
我的正则表达式为[^@'=]+[^'=]
,当键的长度和值为>时输出正常。 1,但有时当长度只有1个字符时,输出不正确。
有人可以建议改进我的正则表达式吗?
答案 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表示字符串的开头...然后@然后组....(不是=一个或多个)='组(不是')后跟'