正则表达式以查找字符串中的某些字符

时间:2018-08-08 09:03:46

标签: javascript regex

我正在用JavaScript进行此操作,所以可能会有更简单的方法?但是我有一个看起来像这样的字符串:

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

例如:

designs/DMFSx881yveor8qolW7DUuPxWDQ2/e53BqQG2Y3wnn8uVRw8m/icon_a5898064.png

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

我对Regex不太好。我已经尝试过^icon\_{*}\.png$,但没有很多乐趣

7 个答案:

答案 0 :(得分:1)

与您的用例相符:

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

然后您可以执行以下操作:

var matches = str.match(/\/icon_(\w+)\.png$/g);

答案 1 :(得分:1)

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

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 :(得分:0)

我认为类似/(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_ +任意数量的数字或字母,后跟.png,而$表示它必须位于字符串的末尾。当您在开头使用^时,您指出开头也必须匹配。

答案 3 :(得分:0)

此正则表达式应该可以满足您的需求

^.*icon\_[a-z,0-9]*\.png$

答案 4 :(得分:0)

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

经过regex101.com测试。它还为正则表达式的工作原理提供了很好的解释。

  • 图标从字面上匹配字符图标(区分大小写)
  • _从字面上匹配字符_(区分大小写)
  • 匹配[A-z0-9] {8}下面列表中存在的单个字符
  • {8}量词-精确匹配8次
  • A-z是A(索引65)到z(索引122)(区分大小写)之间的单个字符
  • 0-9单个字符,介于0(索引48)和9(索引57)(区分大小写)之间
  • 。匹配字符。从字面上看(区分大小写)
  • png从字面上匹配png字符(区分大小写)

答案 5 :(得分:0)

if x = 'your string'
y = x.match(/\/icon_[^/]+.png/);

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

答案 6 :(得分:0)

您可以使用以下正则表达式:

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