我正在用JavaScript进行此操作,所以可能会有更简单的方法?但是我有一个看起来像这样的字符串:
designs/<random_id>/<random_id>/icon_<random_id>.png
例如:
designs/DMFSx881yveor8qolW7DUuPxWDQ2/e53BqQG2Y3wnn8uVRw8m/icon_a5898064.png
我要做的是检查此字符串是否以icon_<random_id>.png
结尾,如果是,则执行X,否则不执行任何操作
我对Regex不太好。我已经尝试过^icon\_{*}\.png$
,但没有很多乐趣
答案 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测试。它还为正则表达式的工作原理提供了很好的解释。
答案 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