我正在阅读reddit帖子下的评论。
有些评论有链接,我想摆脱。
示例(输入):
This is a [pic](https://i.imgur.com/yKmUMJD.jpg), [this](http://www.google.com) is a link
我希望字符串看起来(输出):
这是一张图片,这是一个链接
我使用this,以下行就是诀窍:
item.data.body.replace(/ *\([^)]*\) */g, "").replace('[', '').replace(']', '');
我想知道如何将http
添加到正则表达式中,因此它不会删除" normal"括号文本。
谢谢
答案 0 :(得分:3)
我看到你早些时候发过了类似的问题。现在你也发布了你尝试过的东西......看起来你正在努力解决这个问题。
这就是我要做的事情:
const str = "This is a [pic](https://i.imgur.com/yKmUMJD.jpg), [this](http://www.google.com) is a link";
const tags = str.match(/\[.*?(?=\]\((.*?)\))/g).map(x => x.substring(1));
const newString = str.replace(/\[.*?\]\(.*?\)/g, () => {
return tags.shift();
});
console.log(newString)
第一步是找到所有标记的文本。换句话说,所有内容都包含在[]
中。在上面的示例中,这将生成数组[pic, this]
。
然后,我们需要用上面的每个匹配替换整个url bbcode(即[xxx](http://url)
)。我们将数组视为一个队列,并在使用shift()
后使用()[]
删除数组中的每个结果。
当然,这个解决方案并非万无一失。它不会处理任何字符select DISTINCT t.Ticket
,t.customerNO
,tt.Name
,t.Order
,tt.date
from table 1 t inner join table 2 on t.id=tt.id
的标记或URL本身的角落。