我想使用正则表达式将一些这样的字符串拆分@key='value'
为键和值。
我的正则表达式是[^@'=]+[^'=]
,当键和值的长度> 1时输出很好,但有时当长度只有1个字符时,输出不正确。
有人可以建议我的正则表达式改进吗?
我想使用正则表达式将一些这样的字符串拆分@key='value'
为键和值。
我的正则表达式是[^@'=]+[^'=]
,当键和值的长度> 1时输出很好,但有时当长度只有1个字符时,输出不正确。
有人可以建议我的正则表达式改进吗?
如果你想捕获键和值,你可以试试这个:
/^@([^=]+)='([^']+)'$/
然后,您将拥有 $1 中的密钥和 $2 中的值。
编辑:
我想我明白你在做什么。更改您的正则表达式只是为了[^@'=]+
查看差异。但是,除非您告诉我们您使用的语言和一些示例代码,否则我们无法帮助您。
^@[A-Za-z0-9]+\s*=\s*'[A-Za-z0-9\s]+'
This captures
@Key = 'value'
@key='value'
@k = 'value'
etc..
\A@([^=]+)='([^']+)'
将作为正则表达式工作,但它不考虑转义撇号。这是 2 个捕获组... \A 表示字符串的开头...然后是 @ 然后是组...。(不等于一个或多个)=' Group(not ' ) 后跟 '