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