preg_replace检测语言标记和删除其他语言数据所需的支持


Support needed for preg_replace to detect language tag and remove other language data

我有一个数据字符串,它包含3种不同的语言内容,包含在相应的标记中。

英文的/[langStart-en]//[langEnd-en]

阿拉伯语的/[langStart-ar]//[langEnd-ar]

法国的/[langStart-fr]//[langEnd-fr]

语言代码将作为参数通过url传递,比如for例如,如果语言是英语,url将是

article.php?lang = EN

用于阿拉伯语article.php?lang = AR

法国CCD_ 9。

我想检测语言并从字符串中删除其他语言的内容。

希望这是有意义的

对于模式匹配,您也可以使用

$pattern1 = '/'/'/'[langStart-en'].+'/'/'[langEnd-en']/';

str.replace也可以实现同样的效果。你应该使用

str.replace(/'/'/'[langStart-en'].+'/'/'[langEnd-en']/, '//[langStart-en]//[langEnd-en]');

只有当以上答案对没有帮助时,才应该尝试此操作

我有一个快速解决方案。请检查它是否有效。。您应该能够优化逻辑,但我希望这将帮助您使其发挥作用。

$pattern1 = '/'/'/'[langStart-en'][^n]*'/'/'[langEnd-en']/';
$pattern2 = '/'/'/'[langStart-ar'][^n]*'/'/'[langEnd-ar']/';
$pattern3 = '/'/'/'[langStart-fr'][^n]*'/'/'[langEnd-fr']/';
$lan= $_GET['lang'];
$replace= '';
$string = "whatever may be string";
if ($lan=='EN')
{
$string = preg_replace($pattern2, $replace, $string);
$string = preg_replace($pattern3, $replace, $string);
}
else if ($lan=='AR')
{
$string = preg_replace($pattern1, $replace, $string);
$string = preg_replace($pattern3, $replace, $string);
}
else if ($lan=='FR')
{
$string = preg_replace($pattern1, $replace, $string);
$string = preg_replace($pattern2, $replace, $string);
}
echo $string;

如果你发现任何问题,请检查并告诉我。