gpt4 book ai didi

javascript - 正则表达式在字符串中查找动态子字符串

转载 作者:行者123 更新时间:2023-11-30 10:57:11 27 4
gpt4 key购买 nike

我有一个包含标记的字符串。在标记内有一个标识符/或子字符串,我想选择它看起来像这样

ghost://{schema_name}/{id} 

举个例子

 ghost://blogging/232323

注意:如果需要,我们可以将标识符更改为我们可以在字符串中更容易找到的内容。

将其视为一个字符串

const somesting = `
<h1> Random Heading </h1>
<p> Random Text </p>
<p> a href="ghost://blogging/232323"> Text I want to pick </a> </p>
`

在这里,我想选择 ghost://blogging/232323 并将其更改为实际链接。

通过谷歌搜索,我发现我可以通过使用语法来实现这一点,但我不确定如何在此处(或任何其他方式)编写语法/正则表达式

如果有人能帮助我,我将不胜感激。

根据 CertainPerformance 的回答,我这样做了,但不幸的是这不起作用

const somesting = `
<h1> Random Heading </h1>
<p> Random Text </p>
<p> a href="ghost://xman-article/HPHvLTH06YUMfdMnokOl/spaceyfi-product-launch"> Text I want to pick </a> </p>
`;

const replaced = somesting.replace(
/ghost:\/\/(\w+)\/(\d+)/g,
(_, schema_name, id, slug) => `/${schema_name}/${id}/${slug}`
);

console.log(replaced)

最佳答案

您可以使用正则表达式来匹配 ghost://,后跟单词字符(或模式名称允许的任何字符),再后跟另一个斜杠和数字。下面是一个如何用 a href="https://blogging.com/article/232323" 动态替换它的示例:

const somesting = `
<h1> Random Heading </h1>
<p> Random Text </p>
<p> a href="ghost://blogging/232323"> Text I want to pick </a> </p>
`;

const replaced = somesting.replace(
/ghost:\/\/(\w+)\/(\d+)/g,
(_, schema_name, id) => `https://${schema_name}.com/article/${id}`
);
console.log(replaced);

模式名称和 ID 是 .replace 回调中的变量,因此您可以根据需要随意使用它们,并在回调结束时返回要替换的字符串。

如果你有第三部分的ghost需要捕获,那么创建第三个捕获组,这样.replace回调的第四个参数就可以看到它:

const somesting = `
<h1> Random Heading </h1>
<p> Random Text </p>
<p> a href="ghost://xman-article/HPHvLTH06YUMfdMnokOl/spaceyfi-product-launch"> Text I want to pick </a> </p>
`;

const replaced = somesting.replace(
/ghost:\/\/([^/]+)\/([^/]+)\/([^"])/g,
(_, schema_name, id, slug) => `/${schema_name}/${id}/${slug}`
);

console.log(replaced)

关于javascript - 正则表达式在字符串中查找动态子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59539382/

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