0

我试图制作一个正则表达式来从字符串中提取 key=value 项。值字符串可能有也可能没有引号和空格(类型字符串或数字)。

字符串如下所示:

VAR key = 'value in string mode';
VAR key = 34;
VAR key=3.3;
VAR key='another value without empty spaces between =';

我想提取键和值。

我正在开发但错了。

VAR \@(\w+)\s?\=\s?\'?([\w]+)\'?\;
4

3 回答 3

1

那一个应该做的工作:

^VAR ([^ =]+) ?=[ ']*([^']+)'?;$
于 2013-03-11T21:37:39.200 回答
1

问题是它\w只会匹配单词字符,所以既不是空格也不是符号=。试试这个(演示):

VAR (\w+)\s?=\s?'?([^']+)'?;
于 2013-03-11T21:38:58.113 回答
0

这将使用环顾行为获取单引号内的所有数据。

(?<=').+?(?=')

这将获得密钥名称。

(?<=VAR )[a-zA-Z0-9. ]+(?=\=)
于 2013-03-11T21:53:23.707 回答