gpt4 book ai didi

正则表达式:仅匹配和替换特定行中的空格

转载 作者:行者123 更新时间:2023-12-05 05:14:19 24 4
gpt4 key购买 nike

我敢肯定,当我阅读答案时,我会用头撞墙,但我想不通这个问题。

我有一个带有假数据的 JSON 来填充数据库。一个名为“slug”的属性包含一个我想“slugify”的字符串。

所以这样:

[
{
blah: '[...]'
slug: 'Plem ap at rem',
bleh: '[...]',
},
{
blah: '[...]'
slug: 'Etiam vel augue',
bleh: '[...]',
},
]

应该变成:

[
{
blah: '[...]'
slug: 'Plem-ap-at-rem',
bleh: '[...]',
},
{
blah: '[...]'
slug: 'Etiam-vel-augue',
bleh: '[...]',
},
]

我想首先定位值并无可救药地只捕获空格:

slug: '(?:[\w]*([\s])*)+'

我在 lookarounds 上搞砸了一点,但运气不好。

PS:我打算在 VSCode 的查找和替换中使用它,但也欢迎知道我如何在纯 JS 中执行此操作!

最佳答案

can use infinite-width lookahead and lookbehind从 Visual Studio Code v.1.31.0 版本开始没有任何限制。

你可以使用

查找内容: (?<=slug: '[^']*)\s
替换为:-

详情

  • (?<=slug: '[^']*) - 字符串中紧接 slug: 的位置, 空间, '' 以外的 0+ 个字符
  • \s - 一个空格。

查看演示截图:

enter image description here

既然您询问了如何在 JavaScript 中完成此操作:

const text = `[\n      {\n        blah: '[...]'\n        slug: 'Plem ap at rem',\n        bleh: '[...]',\n      },\n      {\n        blah: '[...]'\n        slug: 'Etiam vel augue',\n        bleh: '[...]',\n      },\n    ]`;
console.log(text.replace(/(?<=slug: '[^']*)\s/gi, '-'))

或者,如果您使用的是 Safari 或任何其他不支持 ECMAScript 2018 标准的 JS 环境:

const text = `[\n      {\n        blah: '[...]'\n        slug: 'Plem ap at rem',\n        bleh: '[...]',\n      },\n      {\n        blah: '[...]'\n        slug: 'Etiam vel augue',\n        bleh: '[...]',\n      },\n    ]`;
console.log(text.replace(/(slug:\s*')([^']*)/gi, function(m,x,y) {
return x + y.replace(/\s+/g, '-');
}));

关于正则表达式:仅匹配和替换特定行中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com