我希望匹配除给定字符串(部分匹配)之外的所有内容:https://play.google.com/variable
通过使用以下正则表达式,我设法完全相反:
(\S*play\.google\.com\S*)
确实选择了我想要保留的唯一字符串,所以我希望我的正则表达式选择所有文本除了上面的那个(基本上与我刚刚做的相反)。
我尝试过负面的预测,但它没有用,希望你能帮助我。完整代码可在此处获取:https://regexr.com/3h4se
如果可能的话,我也会喜欢一个jsfiddle,除了那个url之外,还会使用你修改过的正则表达式删除所有内容,这样最后的输出就会是:
https://play.google.com/variable
祝你好运!
答案 0 :(得分:1)
How about like this, using a negative lookahead:
^(?!https:\/\/play\.google\.com\/variable).*
Live example:
Note that we can still successfully match substrings of the URL like "google" and "variable" while still excluding the full URL match.
Edit:
Here's another way to do it without the lookahead, using The Greatest Regex Trick Ever from Rexegg.com:
https:\/\/play\.google\.com\/variable|(.*)
And return group 1:
$1
答案 1 :(得分:1)
I'm not totally clear what you're trying to do; but this is what I came up with:
^([\s\S])?(\S)(https://play.google.com/\S*)([\s\S]*)\g
then replace: $1$2$4
答案 2 :(得分:0)
我会在分组之前和之后捕捉所有内容。像这样:
/([^]*)play\.google\.com([^]*)/
这样你只需要在之前和之后用组替换原始文本。即G:
original_text.replace(/([^]*)play\.google\.com([^]*)/, '$1$2');
这将为您提供所有文本,然后再加入所有文本。
P.S。这只适用于只有1个且只有1个短语" play.google.com"在文中。