Regex 正则表达式:如果在路径中找到特定的字符串模式,则重新构造url路径

Regex 正则表达式:如果在路径中找到特定的字符串模式,则重新构造url路径,regex,redirect,aws-elb,Regex,Redirect,Aws Elb,我在使用正则表达式和解决问题方面没有太多经验: 我的url如下所示: http&colon//example.com/ja JP/blog/12345 我想将上面的url重定向到下面的url: http&colon//jp.example.com/ja/blog/12345 此外,我想使用aws ALB重定向规则进行重定向。 我必须对不同的国家/地区模式执行相同的URL重定向。 例如en-BZ,en-CA 我需要有关如何捕获语言国家部分和改革源URL的帮助?这是用于匹配语言和国家的regexp:

我在使用正则表达式和解决问题方面没有太多经验: 我的url如下所示:

http&colon//example.com/ja JP/blog/12345

我想将上面的url重定向到下面的url:

http&colon//jp.example.com/ja/blog/12345

此外,我想使用aws ALB重定向规则进行重定向。 我必须对不同的国家/地区模式执行相同的URL重定向。 例如en-BZ,en-CA


我需要有关如何捕获语言国家部分和改革源URL的帮助?

这是用于匹配语言和国家的regexp:

\/(?<lang>[a-z]{2})-(?<country>[A-Z]{2})\/  
\/(?[a-z]{2})-(?[a-z]{2})\/

[a-z]对于小写字母,[a-z]{2}对于两个小写字母,(?[a-z]{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'
preg\u match('/\/(?[a-z]{2})-(?[a-z]{2})\/',$url,$matches);
//$matches['lang']='ja'$matches['country']='JP'
$url=preg_replace('/\/(?[a-z]{2})-(?[a-z]{2})\/','/'.$matches['lang']./',$url);
//$url='1https://example.com/ja/blog/12345'
$url=preg\u replace(“/(https?:\/\/)/”,“$1”。$matches['country']..”,$url);
//$url='1https://JP.example.com/ja/blog/12345'
(https?://)匹配“http://”或“https://”


使用以下JavaScript
正则表达式可以有所帮助:

/(example.com\/[a-z]{2,})-(a-z]{2,})/i
以下是工作示例:

'http://example.com/ja-JP/blog/12345.replace(/(example.com\/[a-z]{2,})-([a-z]{2,})/i,“$2.$1”);
//产出”http://JP.example.com/ja/blog/12345"
'http://example.com/en-BZ/blog/12345.replace(/(example.com\/[a-z]{2,})-([a-z]{2,})/i,“$2.$1”);
//产出”http://BZ.example.com/en/blog/12345"