これは、言語と国を一致させるための正規表現です。
\/(?<lang>[a-z]{2})-(?<country>[A-Z]{2})\/
ここに例があります
小文字の場合は [az]、2 つの小文字の場合は [az]{2}、(?<lang>[az]{2}) でグループ化し、「lang」と名前を付けてからダッシュ「-」を付けます。 2 つの大文字がグループ化されて「country」という名前が付けられ、2 つの「/」に含まれます。
あなたの開発言語がわからないので、それが PHP だとすると、次のようになります。
preg_match('/\/(?<lang>[a-z]{2})-(?<country>[A-Z]{2})\//' ,$url, $matches);
// $matches['lang']='ja' $matches['country']='JP'
$url = preg_replace('/\/(?<lang>[a-z]{2})-(?<country>[A-Z]{2})\//', '/'.$matches['lang'].'/', $url);
// $url = 'https://example.com/ja/blog/12345'
$url = preg_replace('/(https?:\/\/)/', '$1'.$matches['country'].'.', $url);
// $url = 'https://JP.example.com/ja/blog/12345'
(https?://) は、「http://」または「https://」に一致します。