javascript - 如何使用正则表达式从特定格式字符串中提取键值对?

标签 javascript regex

我有一个具有特定格式的字符串

'a:3:{s:8:"postid";s:1:"100";s:6:"commentid";s:1:"200";s:6:"website";s:24:"http://www.example.com";}';

请注意,上面的字符串不是 JSON、序列化对象或任何其他数据格式。

可能的要求是提取双引号中的每个值并与双引号中的下一项进行映射。

我需要的输出是数组映射

[postid:100, commentid:200, 网站:"http://www.example.com"]

用正则表达式可以实现吗?提供的键 postid、commentid 和 website 将始终出现在输入字符串中。

最佳答案

这个简单的应该可以满足您的需求:

"([^"]+)"[^"]+"([^"]+)"

Regular expression visualization

Debuggex Demo

如您所见,第一组将包含键,第二组将包含值。

演示 regex101

关于javascript - 如何使用正则表达式从特定格式字符串中提取键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743430/

相关文章:

Javascript/jQuery : Split camelcase string and add hyphen rather than space

用于匹配不包含单词的行的正则表达式

javascript - 如何创建日期为 ("23.03.2010"的对象)

php - 多个项目作为一项插入到数据库中

regex - 将 url(r'^(?P<pk>[-\w]+)/$') 解码为 Django 中的 path()

php - 正则表达式匹配固定单词的任何大写或小写字母

javascript - 正则表达式检测<>内的文本

javascript - JQuery 遍历每个 div id

javascript - React Redux 属性未定义

javascript - 这是子类还是新实例?