RegEx匹配完整字符串

时间:2011-05-13 20:54:42

标签: regex

我正在尝试为301s创建一个正则表达式,以帮助我识别网址:site.com/abc/并重定向到site.com/xyz/。我已经尝试使用正则表达式^abc/?并且它工作正常但问题是甚至像site.com/123/sdas/abc/213这样的网址被抓住了。如何确保只有/abc与完整的字符串网址匹配?

4 个答案:

答案 0 :(得分:20)

使用行结束$

^abc/$

这可确保匹配确切的字符串abc/

答案 1 :(得分:2)

$匹配字符串的结尾:

^abc/?$

答案 2 :(得分:1)

 const regex = /^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/;
      const str = `https://abc.xyz/upload/string/something/hds`;
      let m;

      if ((m = regex.exec(str)) !== null) {
        // The result can be accessed through the `m`-variable.
        m.forEach((match, groupIndex) => {
          console.log(`Found match, group ${groupIndex}: ${match}`);
        });
      }

在控制台中:

  
    

匹配1     完全匹配0-43 https://abc.xyz/upload/string/something/hds      - 小组1.不适用https:/      - 小组2.不适用https      - 小组3.不适用abc.xyz      - 小组4.不适用/upload/string/something/      - 小组5.不适用/something      - 小组6.不适用hds

  

答案 3 :(得分:0)

像这样写下你的规则:

RewriteRule ^abc/?$ /xyz [L,NC]