文字列の最後の4文字を選択できる正規表現を取得しようとしています。最後から4番目の文字を取得する正規表現
例: "system"が "s"を選びたい文字列の場合、開始からの文字数が固定されていないので、開始からチェックできません。
これまでは/.{3}$/g
にしか届いていませんが、それ以降の文字は最後の3文字になります。
誰かが私を同じように助けることができますか?
文字列の最後の4文字を選択できる正規表現を取得しようとしています。最後から4番目の文字を取得する正規表現
例: "system"が "s"を選びたい文字列の場合、開始からの文字数が固定されていないので、開始からチェックできません。
これまでは/.{3}$/g
にしか届いていませんが、それ以降の文字は最後の3文字になります。
誰かが私を同じように助けることができますか?
は、キャプチャグループだけでなく、式全体が一致する場合に機能します。
const reg = /.*(.).{3}$/g
const str = 'this is astring'
console.log(
str.replace(reg, '$1')
)
あなたはグループを使用する必要があると思います。ここ
/(.).{3}$/
完全一致はstem
なり、グループ1はs
だろう(あなたはここで自分で見ることができます:https://regex101.com/r/dZwhcu/1)
次のように解決できます。
01なぜそのように部分文字列を使用していないvar matches = 'system'.match(/(.).{3}$/); //=> ['stem', 's']
if (matches[1] === 's') {
// ...
}
:
function lastFourLetters(str)
{
if (str.length < 5)
return str;
return str.substring(str.length - 4 , 4);
}
があなたの結果で、その後/([a-z]).{3}$/g
を使用してみてください、あなたは最初のキャプチャグループからの値を使用することができます。
私はJSが正規表現でバックトレースを持っているとは思わない。私は 'str.charAt(str.length - 4)' – Rajesh
または 's.substr(s.length-4、1)' –
@WiktorStribiżewに 'substr'の特別な理由を示唆していますか? – Rajesh