【发布时间】:2018-05-24 15:11:20
【问题描述】:
我有示例文本:
$text = "
АДАБГОЊ љои адаб-
омўзї.
АДАБДОН ادبدان ошно бо адабу фарњанг.
тиллову нуќра бо мањак ва ѓ.; зар(р)и иёр тил-
лои холис.
АЁРА اياره 1. ёра, дастбиранљан.
";
我有示例代码用于获取大写单词到数组键和数组值所有大写单词右边的文本:
$regex = '~\b-(?:\R|\h)\b~u';
$text = preg_replace($regex, '', $text);
$pattern = '~^(\p{Lu}+)\h+(.*(?:\R(?!\p{Lu}+\h).*)*)~mu';
preg_match_all($pattern, $text, $matches);
$result = array_combine(array_map('mb_strtolower', $matches[1]), preg_replace('~\s*\R++\s*~u', ' ', preg_replace('~\p{Arabic}+~u', '', $matches[2])));
echo "<pre>";
print_r($result);
echo "</pre>";
结果执行代码:
Array
(
[адабгоњ] => љои адабомўзї.
[адабдон] => ошно бо адабу фарњанг. тиллову нуќра бо мањак ва ѓ.; зар(р)и иёр тиллои холис.
[аёра] => 1. ёра, дастбиранљан.
)
但是我有第二种类型的文本有问题:
$text = "
АДАБГОЊ//АДАБГАЊ ادبگه//ادبگاه љои адаб-
омўзї.
АДАБДОН ادبدان ошно бо адабу фарњанг.
АЁЃ//АЁЌ т. اياق//اياغ кит. пиёла, ќадањ, соѓар.
АЁР//ИЁР а. ايار санљидани дараљаи холисияти
тиллову нуќра бо мањак ва ѓ.; зар(р)и иёр тил-
лои холис.
АЁРА اياره 1. ёра, дастбиранљан.
АДУ//АДУВ а. عدو ниг. адў.
";
在这种类型的文本中,我有带有符号// 的单词。这种类型用一个描述来表达两个词。 (WORD//WORD 描述)。当我使用旧代码时,结果将是:
Array
(
[адабдон] => ошно бо адабу фарњанг. АЁЃ//АЁЌ т. // кит. пиёла, ќадањ, соѓар. АЁР//ИЁР а. санљидани дараљаи холисияти тиллову нуќра бо мањак ва ѓ.; зар(р)и иёр тиллои холис.
[аёра] => 1. ёра, дастбиранљан. АДУ//АДУВ а. ниг. адў.
)
如何编写模式以获取示例结果:
Array
(
[адабдон] => ошно бо адабу фарњанг.
[аёѓ] => т. // кит. пиёла, ќадањ, соѓар.
[аёк] => т. // кит. пиёла, ќадањ, соѓар.
[аёр] => а. санљидани дараљаи холисияти тиллову нуќра бо мањак ва ѓ.; зар(р)и иёр тиллои холис.
[иёр] => а. санљидани дараљаи холисияти тиллову нуќра бо мањак ва ѓ.; зар(р)и иёр тиллои холис.
[аёра] => 1. ёра, дастбиранљан.
[аду] => а. ниг. адў.
[адув] => а. ниг. адў.
)
这里为所有带有//符号的单词保存了一个描述。
【问题讨论】:
-
您从未解释过您要做什么,请使用英文示例输入。
-
请发布您的工作代码并附上ideone.com 的链接,以便有一个改进的起点。