簡體   English   中英

正則表達式以查找字符串中的某些字符

[英]Regex to find certain characters in a string

我正在使用Javascript進行此操作,因此可能會有更簡單的方法? 但是我有一個看起來像這樣的字符串:

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

例如:

designs/DMFSx881yveor8qolW7DUuPxWDQ2/e53BqQG2Y3wnn8uVRw8m/icon_a5898064.png

我要做的是檢查此字符串是否以icon_<random_id>.png結尾。如果是,請執行X,否則不執行任何操作

我對Regex不太好。 我已經嘗試過^icon\\_{*}\\.png$但是我沒有很多樂趣

那個符合您的用例:

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

然后,您可以執行以下操作:

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

您可以使用此代碼簡單檢查部分是否存在:

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');
}

我想您可能正在尋找類似/(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,而$表示它必須在字符串的末尾。 當您在開頭使用^時,您指出起點也必須匹配。

此正則表達式可以滿足您的目的:

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

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

經過regex101.com測試。 它還為正則表達式的工作原理提供了很好的解釋。

  • 圖標從字面上匹配字符圖標(區分大小寫)
  • _從字面上匹配字符_(區分大小寫)
  • 匹配[A-z0-9] {8}下列表中的單個字符
  • {8}量詞-精確匹配8次
  • Az是單個字符,介於A(索引65)和z(索引122)之間(區分大小寫)
  • 0-9單個字符,介於0(索引48)和9(索引57)(區分大小寫)之間
  • 匹配字符。 從字面上看(區分大小寫)
  • png從字面上匹配png字符(區分大小寫)
if x = 'your string'
y = x.match(/\/icon_[^/]+.png/);

如果此返回值為y,則需要使用x字符串

您可以使用以下正則表達式:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM