正则表达式匹配2或21或210以及随后的任何内容

时间:2018-02-14 21:22:30

标签: regex

我正在尝试为新网站进行数百次301重定向。

大约400个商店位置中的每一个都必须从旧网址重定向到新网址。旧网址如下所示:

**goal:** i need the following data:

但有时候(比如在Google或Bing中编入索引),网址后面的查询字符串也很长,例如:

https://example.com/stores/-/details/store/245

我最初使用了一个简单的贪婪表达式,如

https://example.com/stores/-/details/store/245?utm_source=Yext&StoreListings&utm_store_campaign=245

但这会将商店2,24和245重定向到/ stores / - / details / store / 2。

然后我把它改成了懒惰的量词

/stores/-/details/store/245.* 

这正确地匹配了整个数字,但现在的问题是它将匹配/ 2或/ 24或/ 245,但没有别的。也就是说,它只匹配数字,但如果查询字符串之类的数字后面有任何内容,则它将不匹配。

如何获得与整个数字(2,24或245)匹配的正则表达式,无论是否包含任何内容?

1 个答案:

答案 0 :(得分:1)

使用\b匹配正则表达式中的单词边界,然后.*匹配其余部分。这会使2245不匹配,因为24之间没有字边界。

/stores/-/details/store/2\b.*