我肯定在阅读答案时会把头撞在墙上,但我无法弄清楚。
我有一个带有伪数据的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])*)+'
我对环视感到有些困惑,但是没有运气。
PS:我打算在VSCode的查找和替换中使用它,但是也欢迎知道如何在纯JS 中做到这一点!
答案 0 :(得分:1)
从Visual Studio Code v.1.31.0版本开始,您can use infinite-width lookahead and lookbehind没有任何约束。
您可以使用
查找内容:(?<=slug: '[^']*)\s
替换为:-
详细信息
(?<=slug: '[^']*)
-字符串中的位置,紧跟slug:
,空格,'
和0+个字符('
\s
-一个空格。查看演示屏幕截图:
答案 1 :(得分:0)
在VSCode中,因为向后看不起作用:
(slug: '\S*)\s
替换为:$1-
您将不得不单击几次“全部替换”按钮,直到垃圾邮件计数降至0,因为它仅与每行中的第一个匹配,因此您必须对其进行垃圾邮件处理。我知道这不理想,但是如果您只做一次...