在Javascript中使用Regex,在任意模式之后,在字符串末尾匹配可选模式的最佳方法是什么?当可选模式出现在字符串末尾和任意模式之后时,有没有办法使其具有包容性?
我的Regex:
'{any:any}'.match(/{?(.+):(.+)}?/);
当前结果:
['{any:any}', 'any', 'any}', index: 0, input: '{any:any}', groups: undefined]
预期结果:
['{any:any}', 'any', 'any', index: 0, input: '{any:any}', groups: undefined]
如果你想保持卷曲的可选,你可以使用两个捕获组与一个否定的字符类组合:
{?([^{}:]+):([^{}:]+)}?
Regex演示
console.log('{any:any}'.match(/{?([^{}:]+):([^{}:]+)}?/));
如果你不想跨越换行符,你可以排除它们:
{?([^{}:n]+):([^{}:n]+)}?