PHP Regex Preg_replace希伯来语 Unicode 到另一个 Unicode



我需要将 3 个希伯来语 Unicode 字符替换为另外 3 个希伯来语 Unicode 字符。我研究了PHP语法并进行了搜索,但这是我能写的最好的。它有效并完成工作。

我想知道并想知道这是否是在将 PHP 中将 Unicode 字符替换为另一个 Unicode 字符的最佳方法,然后再将其转换为一个小函数。

PHP中有更好的语法吗?

$re1 = '/[x{05B1}]/u';
$re2 = '/[x{05B2}]/u';
$re3 = '/[x{05B3}]/u';
$subst1 = json_decode('"u05B6"');
$subst2 = json_decode('"u05B0"');
$subst3 = json_decode('"u05B8"');
//Replace (Niqqud with Cantillation) with (just Niqqud)
$bible_content = preg_replace($re1, $subst1, $bible_content);
$bible_content = preg_replace($re2, $subst2, $bible_content);
$bible_content = preg_replace($re3, $subst3, $bible_content);

$bible_content 的起始输入:

וַ/יִּקְרָא אֱלֹהִים לָ/אוֹר יוֹם וְ/לַ/חֹשֶׁךְ קָרָא לָיְלָה וַ/יְהִי עֶרֶב וַ/יְהִי בֹקֶר יוֹם אֶחָד׃ אַשְׁרֵי הָ/אִישׁ אֲשֶׁר לֹא הָלַךְ בַּ/עֲצַת רְשָׁעִים וּ/בְ/דֶרֶךְ חַטָּאִים לֹא עָמָד וּ/בְ/מוֹשַׁב לֵצִים לֹא יָשָׁב׃ חֳ

$bible_content 的预期输出:

וַ/יִּקְרָא אֶלֹהִים לָ/אוֹר יוֹם וְ/לַ/חֹשֶׁךְ קָרָא לָיְלָה וַ/יְהִי עֶרֶב וַ/יְהִי בֹקֶר יוֹם אֶחָד׃ אַשְׁרֵי הָ/אִישׁ אְשֶׁר לֹא הָלַךְ בַּ/עְצַת רְשָׁעִים וּ/בְ/דֶרֶךְ חַטָּאִים לֹא עָמָד וּ/בְ/מוֹשַׁב לֵצִים לֹא יָשָׁב׃ חָ

PHP 7.0 对字符串文字中的 unicode 字符有了新的语法。此外,您可以使用strtr函数来处理字符到字符的替换。

$from = "u{05B1}u{05B2}u{05B3}";
$to = "u{05B6}u{05B0}u{05B8}";
echo strtr($bible_content, $from, $to). "n";

现在,我无法阅读希伯来语(甚至无法使其正确流动 RTL,显然:P),所以您必须判断它是否做了正确的事情。

相关内容

最新更新