代码之家  ›  专栏  ›  技术社区  ›  K20GH

在字符串中查找某些字符的regex

  •  -1
  • K20GH  · 技术社区  · 7 年前

    我用JavaScript来做这个,所以可能有一个更简单的方法?但是我有一个这样的字符串:

    designs/<random_id>/<random_id>/icon_<random_id>.png

    例如:

    designs/DMFSx881yveor8qolW7DUuPxWDQ2/e53BqQG2Y3wnn8uVRw8m/icon_a5898064.png

    我要做的是检查这个字符串是否以 icon_<random_id>.png 如果有,则执行X,否则不执行任何操作

    我不太擅长瑞格。我试过了 ^icon\_{*}\.png$ 但是我没有太多的快乐

    7 回复  |  直到 7 年前
        1
  •  1
  •   Abderrahim Soubai-Elidrisi    7 年前

    您可以使用此代码简单检查部分是否存在:

    let reg = /(icon_[\S]+\.png)$/iu; 
    
    
    let str = 'designs/DMFSx881yveor8qolW7DUuPxWDQ2/e53BqQG2Y3wnn8uVRw8m/icon_a5898064.png';
    
    let check = str.match(reg);
    
    if(Array.isArray(check) && check[0]) {
    console.log('exists');
    }else{
    console.log('not exists');
    }
    
        2
  •  1
  •   Arthur C    7 年前

    那个与您的用例匹配:

    \/icon_(\w+)\.png$
    

    然后你可以做如下的事情:

    var matches = str.match(/\/icon_(\w+)\.png$/g);
    
        3
  •  0
  •   Tony    7 年前

    我想应该是 /(icon_[A-z0-9]+.png)$/ 可能是你想要的。

    var img-reg = /(icon_[A-z0-9]+.png)$/;
    var url = 'designs/DMFSx8uPxWDQ2/e53BqQG2Y3wnn8uVRw8m/icon_a58598064.png'; 
    if (img-reg.test(url)) {
        //do something because it matched.
    }
    

    icon_uu+any amount of numbers or letters followed by.png and the$表示它必须位于字符串的末尾。当你在开始时使用一个^时,你会说开始也必须匹配。

        4
  •  0
  •   Ali Ahmad    7 年前

    此regex应适用于您的目的:

    ^.*icon\_[a-z,0-9]*\.png$
    
        5
  •  0
  •   cнŝdk    7 年前
    if x = 'your string'
    y = x.match(/\/icon_[^/]+.png/);
    

    如果此返回值为y,则需要x字符串

        6
  •  0
  •   bitsobits    7 年前

    您可以使用以下regex:

    designs\/[A-Za-z0-9]*\/[A-Za-z0-9]*\/icon_[A-Za-z0-9]*.png

        7
  •  0
  •   Philipp Sander    7 年前

    /icon\_[A-z0-9]{8}\.png/

    用试验 regex101.com . 它还可以很好地解释regex的工作原理。

    • 图标逐字匹配字符图标(区分大小写)
    • _字面匹配字符(区分大小写)
    • 匹配下面列表中的单个字符[A-Z0-9]8
    • 8_Quantifier_
    • a-z在a(索引65)和z(索引122)之间的单个字符(区分大小写)
    • 0-9介于0(索引48)和9(索引57)之间的单个字符(区分大小写)
    • . 匹配角色。字面意思(区分大小写)
    • png逐字匹配png字符(区分大小写)