2016-12-19 21 views
0

文字列の最後の4文字を選択できる正規表現を取得しようとしています。最後から4番目の文字を取得する正規表現

例: "system"が "s"を選びたい文字列の場合、開始からの文字数が固定されていないので、開始からチェックできません。

これまでは/.{3}$/gにしか届いていませんが、それ以降の文字は最後の3文字になります。

誰かが私を同じように助けることができますか?

+2

私はJSが正規表現でバックトレースを持っているとは思わない。私は 'str.charAt(str.length - 4)' – Rajesh

+1

または 's.substr(s.length-4、1)' –

+0

@WiktorStribiżewに 'substr'の特別な理由を示唆していますか? – Rajesh

答えて

3

は、キャプチャグループだけでなく、式全体が一致する場合に機能します。

0

const reg = /.*(.).{3}$/g 
 
const str = 'this is astring' 
 

 
console.log(
 
    str.replace(reg, '$1') 
 
)

2

あなたはグループを使用する必要があると思います。ここ

/(.).{3}$/ 

完全一致はstemなり、グループ1はsだろう(あなたはここで自分で見ることができます:https://regex101.com/r/dZwhcu/1

次のように解決できます。

01なぜそのように部分文字列を使用していない
var matches = 'system'.match(/(.).{3}$/); //=> ['stem', 's'] 
if (matches[1] === 's') { 
    // ... 
} 
0

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

があなたの結果で、その後/([a-z]).{3}$/gを使用してみてください、あなたは最初のキャプチャグループからの値を使用することができます。

関連する問題