Найти слова в строку
Я создаю функцию в PHP, который получает string
. Затем он должен искать внутри этого string
, слова в квадратных скобках и сохраняет их в массив.
Есть ли функция, которая выполняет поиск только этих слов и сохранить их в массив? Или в переменной, чтобы после того, как я передал ей, чтобы массив?
, Например string:
<font color="maroon">[como]</font> <rel> <ks> <font color="blue"><b>ADV</b> </font> <font color="darkgreen">@ADVL></font> <font color="darkgreen"><b>@#FS-ADVL</font></b> <font color="darkgreen"><b>@#FS-N<</font></b>
<dt><b><font color="maroon">não</font></b>
<font color="maroon">[não]</font> <font color="blue"><b>ADV</b> </font> <font color="darkgreen">@ADVL></font>
<dt><b><font color="maroon">amar</font></b>
<font color="maroon">[amar]</font> <vt> <font color="blue"><b>V</b> FUT 1/3S SUBJ VFIN </font> <font color="darkgreen">@FMV</font>
<dt><b><font color="maroon">uma</font></b>
<font color="maroon">[um]</font> <arti> <font color="blue"><b>DET</b> F S </font> <font color="darkgreen">@>N</font>
<dt><b><font color="maroon">pessoa</font></b>
<font color="maroon">[pessoa]</font> <H> <font color="blue"><b>N</b> F S </font> <font color="darkgreen">@<ACC</font>
<dt><b><font color="maroon">tão</font></b>
<font color="maroon">[tão]</font> <dem> <quant> <font color="blue"><b>ADV</b> </font> <font color="darkgreen">@>A</font>
<dt><b><font color="maroon">linda</font></b>
<font color="maroon">[lindo]</font> <font color="blue"><b>ADJ</b> F S </font> <font color="darkgreen">@N<</font>
<dt><b><font color="maroon">.</font></b>
Примере массива
Array
(
[0] => como
[1] => não
[2] => amar
[3] => um
[5] => pessoa
[6] => tão
[7] => lindo
)
1
1 answers
Можете использовать регулярное выражение, чтобы захватить только те символы в скобках, единственная деталь не ускользает от них, поскольку они являются метасимволы.
Выражение \[.*\]/
, означает, capture открывает скобки, за которой следует любой символ наибольшее количество раз, и в обязательном порядке должны остановить найти закрывается в квадратные скобки.
<?php
$str = '
<font color="maroon">[como]</font> <rel> <ks> <font color="blue"><b>ADV</b> </font> <font color="darkgreen">@ADVL></font> <font color="darkgreen"><b>@#FS-ADVL</font></b> <font color="darkgreen"><b>@#FS-N<</font></b>
<dt><b><font color="maroon">não</font></b>
<font color="maroon">[não]</font> <font color="blue"><b>ADV</b> </font> <font color="darkgreen">@ADVL></font>
<dt><b><font color="maroon">amar</font></b>
<font color="maroon">[amar]</font> <vt> <font color="blue"><b>V</b> FUT 1/3S SUBJ VFIN </font> <font color="darkgreen">@FMV</font>
<dt><b><font color="maroon">uma</font></b>
<font color="maroon">[um]</font> <arti> <font color="blue"><b>DET</b> F S </font> <font color="darkgreen">@>N</font>
<dt><b><font color="maroon">pessoa</font></b>
<font color="maroon">[pessoa]</font> <H> <font color="blue"><b>N</b> F S </font> <font color="darkgreen">@<ACC</font>
<dt><b><font color="maroon">tão</font></b>
<font color="maroon">[tão]</font> <dem> <quant> <font color="blue"><b>ADV</b> </font> <font color="darkgreen">@>A</font>
<dt><b><font color="maroon">linda</font></b>
<font color="maroon">[lindo]</font> <font color="blue"><b>ADJ</b> F S </font> <font color="darkgreen">@N<</font>
<dt><b><font color="maroon">.</font></b>';
$regex ='/\[.*\]/';
preg_match_all($regex, $str, $matches);
echo '<pre>';
print_r($matches);
3
Author: rray, 2015-09-20 15:56:54