簡體   English   中英

正則表達式在字符串末尾的第二個“。”點字符后提取字符串

[英]Regex extract string after the second “.” dot character at the end of a string

我想提取文件名的第二個“文件擴展名”,以便:

/Users/path/my-path/super.lol.wtf/main.config.js

我需要的是:

.config.js

如果我得到一個包含2個字符串的數組,那將是多么令人敬畏:

var output = ['main', '.config.js'];

我嘗試過的:

^(\d+\.\d+\.)

但這不起作用。

謝謝

您可以使用以下內容:

([^\/.\s]+)(\.[^\/\s]+)$

這里的例子

  • ([^\\/.\\s]+) - 捕獲除字符/和之外的組. 字面上以及任何空格字符一次或多次。

  • (\\.[^\\/\\s]+) - 與上面的表達式相似; 捕獲組開始於. 字面上的字面; 排除字符/. 字面上以及任何空格字符一次或多次。

  • $ - 結束


或者,您也可以使用以下內容:

(?:.*\/|^)([^\/.\s]+)(\.[^\/\s]+)$

這里的例子

  • (?:.*\\/|^) - 與上面的表達式相同,但這會縮小匹配范圍以減少步數。 它是一個非捕獲組,它將匹配行的開頭或/字符。

第一個表達式更短,但第二個表達式具有更好的性能。

兩個表達式都匹配以下內容:

['main', '.config.js']

在以下各項中:

/Users/path/my-path/some.other.ext/main.config.js
some.other.ext/main.config.js
main.config.js

這是你需要的:

(?:\/?(?:.*?\/)*)([^.]+)*\.([^.]+\.[^.]+)$
  • (?:表示檢測並忽略,
  • [^.]+表示除了之外的任何內容.
  • .*? 意思是直到最后/

檢查一下

暫無
暫無

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

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