我试图制作一个正则表达式来从字符串中提取 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]+)\'?\;
那一个应该做的工作:
^VAR ([^ =]+) ?=[ ']*([^']+)'?;$
问题是它\w
只会匹配单词字符,所以既不是空格也不是符号=
。试试这个(演示):
VAR (\w+)\s?=\s?'?([^']+)'?;
这将使用环顾行为获取单引号内的所有数据。
(?<=').+?(?=')
这将获得密钥名称。
(?<=VAR )[a-zA-Z0-9. ]+(?=\=)