Regex 如何使用正则表达式拆分格式字符串?

Regex 如何使用正则表达式拆分格式字符串?,regex,Regex,我想使用正则表达式将一些字符串像这样拆分为键和值 我的正则表达式是[^@'=]+[^'=],当键和值的长度大于1时,输出良好,但有时当长度仅为1个字符时,输出不正确 有人能为我的正则表达式提出改进建议吗 \A@([^=]+)='([^']+)' 将用作正则表达式,但不考虑撇号的转义。这是两个捕获组\A说字符串的开头。。。然后@then组。。。。(not=一个或多个)='Group(not')后跟'如果您想捕获键和值,可以尝试以下方法: /^@([^=]+)='([^']+)'$/ 然后,

我想使用正则表达式将一些字符串像这样拆分为键和值

我的正则表达式是
[^@'=]+[^'=]
,当键和值的长度大于1时,输出良好,但有时当长度仅为1个字符时,输出不正确

有人能为我的正则表达式提出改进建议吗

\A@([^=]+)='([^']+)'  
将用作正则表达式,但不考虑撇号的转义。这是两个捕获组\A说字符串的开头。。。然后@then组。。。。(not=一个或多个)='Group(not')后跟'

如果您想捕获键和值,可以尝试以下方法:

/^@([^=]+)='([^']+)'$/
然后,您将有$1中的键和$2中的值

编辑:


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

请提供失败的示例输入和源代码。@class='x'仅输出与类匹配,值x未输出。但是如果@class='x1',输出匹配也是class和x1,我看不出正则表达式如何匹配像字符串这样的东西。。。请举例说明!工作和不工作。啊,我想我理解你的正则表达式在做什么。那么为什么不直接使用
[^@'=]+
呢?明白了,第一个回复是给我的,我只需要调整我的代码。谢谢大家的建议。
^@[A-Za-z0-9]+\s*=\s*'[A-Za-z0-9\s]+'

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

etc..