好吧,我在尝试制作正则表达式时遇到了一些障碍。
本质上,我想要一个像这样的字符串:
error=some=new item user=max dateFrom=2013-01-15T05:00:00.000Z dateTo=2013-01-16T05:00:00.000Z
待解析读取
error=some=new item
user=max
dateFrom=2013-01-15T05:00:00.000Z
ateTo=2013-01-16T05:00:00.000Z
所以我希望它提取已知的关键字,并忽略其他具有 = 的字符串。
我当前的正则表达式如下所示:
(error|user|dateFrom|dateTo|timeFrom|timeTo|hang)\=[\w\s\f\-\:]+(?![(error|user|dateFrom|dateTo|timeFrom|timeTo|hang)\=])
因此,我使用动态使用的已知关键字,以便我可以将它们列为已知关键字。
我该如何编写它来包含此要求?
最佳答案
您可以像这样使用替换:
var input = "error=some=new item user=max dateFrom=2013-01-15T05:00:00.000Z dateTo=2013-01-16T05:00:00.000Z";
var result = input.replace(/\s*\b((?:error|user|dateFrom|dateTo|timeFrom|timeTo|hang)=)/g, "\n$1");
result = result.replace(/^\r?\n/, ""); // remove the first line
结果:
error=some=new item
user=max
dateFrom=2013-01-15T05:00:00.000Z
dateTo=2013-01-16T05:00:00.000Z
关于javascript - 解析已知键的字符串正则表达式,但保留分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882423/