簡體   English   中英

正則表達式從最后獲得第4個字符

[英]regular expression to get 4th character from last

我一直在嘗試獲取一個可以選擇字符串中最后四個字符的正則表達式。

對於前 如果“ system”是我想選擇“ s”的字符串,則由於開始位置的字符數不固定,因此無法檢查開始位置。

到目前為止,我只達到了:/. /.{3}$/g ,但是它占用了最后三個字符,而不是后面的字符。

有人可以幫我嗎?

.(?=.{3}$)與整個表達式匹配一起使用,而不僅僅是捕獲組。

您必須使用一個組:

/(.).{3}$/

此處的完整匹配為stem ,第1組為s (您可以在此處親自查看: https : //regex101.com/r/dZwhcu/1

您可以按以下方式解決它:

var matches = 'system'.match(/(.).{3}$/); //=> ['stem', 's']
if (matches[1] === 's') {
    // ...
}

 const reg = /.*(.).{3}$/g const str = 'this is astring' console.log( str.replace(reg, '$1') ) 

為什么不使用這樣的子字符串:

function lastFourLetters(str)
{
   if (str.length < 5)
       return str;
   return str.substring(str.length - 4 , 4); 
}

嘗試使用/([az]).{3}$/g然后在結果中,可以使用第一個捕獲組中的值。 換班,以防萬一您需要更多或其他選擇

暫無
暫無

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

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