这是匹配语言和国家的正则表达式:
\/(?<lang>[a-z]{2})-(?<country>[A-Z]{2})\/
这是示例
[az] 表示小写字母,[az]{2} 表示两个小写字母,(?<lang>[az]{2}) 将其组成一个组并将其命名为“lang”,然后是破折号“-”,以及两个大写字母组并命名为'country',并包含在两个'/'中
既然不知道你的开发语言是什么,就说是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://”