我需要一个帮助来解析这些括号内的字符:
[]
{}
<>
{|}
<|>
例如,我有这个字符串变量(日语):
$question = "この<部屋|へや>[に]{椅子|いす}[が]ありません";
HTML中的预期结果:
1)这是一个粒子。我会将[]
内的所有字词转换为HTML标记。示例:[に]
将转换为<span style="color:blue">に</span>
。完整的句子可以有多个[]
。注意:我了解如何使用str_replace。
2和4)这是正常的汉字词,它将被用作用户的问题。完整句子只能有一个{}
。
3和5)这是正常的汉字文本。完整的句子可以有多个{}
。
2,3,4和5)它们将转换为Ruby html标签。有时他们没有|
分隔符,这不是强制性的。据我所知,我只需要爆炸|
个字符。如果爆炸返回false或|
不存在,我将使用原始值。注意:我了解如何使用ruby标签(rb和rt)。
如何使用PHP解析上面提到的字符1-5?我需要从哪个关键字开始?
感谢。
答案 0 :(得分:0)
感谢此页面:Capturing text between square brackets in PHP,现在我有了自己的答案。
完整代码:
<?php
$text = "この<部屋|へや>[に]{椅子|いす}[が]ありません";
preg_match_all("/\[([^\]]*)\]/", $text, $square_brackets); //[]
preg_match_all("/{([^}]*)}/", $text, $curly_brackets); //{}
preg_match_all("/<([^}]*)>/", $text, $angle_brackets); //<>
print_r($square_brackets);
echo "\r\n";
print_r($curly_brackets);
echo "\r\n";
print_r($angle_brackets);
echo "\r\n";
结果:
Array
(
[0] => Array
(
[0] => [に]
[1] => [が]
)
[1] => Array
(
[0] => に
[1] => が
)
)
Array
(
[0] => Array
(
[0] => {椅子|いす}
)
[1] => Array
(
[0] => 椅子|いす
)
)
Array
(
[0] => Array
(
[0] => <部屋|へや>
)
[1] => Array
(
[0] => 部屋|へや
)
)
感谢。