用正则表达式替换url中的特定字符串

时间:2014-07-17 04:42:49

标签: javascript regex string

假设我有一串:

http://mitavite.v10.fw8.co/kb/tags/breedings~breeding~foobar~breeding~foo

让我们在/tags/ TAG 之后调用所有内容。

然后让我说要删除标签,"育种"。

我想创建一个正则表达式,可以在字符串中搜索所需的标记,如果它后跟~后缀添加到结果中,则将其从字符串中删除。以下是我的尝试:

breeding([?!.*\~]|[^!?a-zA-Z0-9]+)虽然这可能在我的测试字符串中有用,但如果我将breeding更改为foo,则它不会选择字符串中的最后一个标记。

我的问题是它只找到由~提供的标签,我认为我需要匹配的是:

1. the tag name by it self, not followed by any other character except for the〜`character

演示:http://regex101.com/r/kR9mG4/1

我无法弄清楚如何匹配这个。

2 个答案:

答案 0 :(得分:2)

你可能正在寻找这样的东西:

str = str.replace(/\bbreeding\b~?/g, '')

单词边界\b不消耗任何字符。它断言,一方面有一个字符,而另一方则没有。添加量词?将在零到一次之间匹配~

答案 1 :(得分:0)

要删除breeding~,请简单地说:

replaced = yourString.replace(/\bbreeding~/g, "");