Как получить текст между настраиваемыми динамическими тегами HTML без конечных тегов - PullRequest
0 голосов
/ 25 августа 2018

У меня есть текст, разделенный несколькими пользовательскими тегами с частично динамическими именами и без закрывающих тегов.

Мне нужно получить все отдельные части текста между пользовательскими тегами, не , включая теги.

Для последней части текста я могу получить текст только после тега, потому что у него нет закрывающего тега.

Я видел много похожих вопросов, но не нашел их достаточными для решения моей проблемы.

Пример:

<*fixedTagName|Dynamic part of tag name> // * and | are included in fixed part of tag name
                                   //dynamic part can have spaces between words

  Random text I need to get of unknown length

  some paragraphs of text can start like this(look bellow)

  » name: value
  » name: value

<*fixedTagName|Dynamic part of tag>

  More random text I need to get

<*fixedTagName|Dynamic part of tag>

  Final part of random text I need to get

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Чтобы получить текст между совпадениями регулярного выражения, вы можете использовать функцию preg_split:

$result = preg_split('/<\*[^|]+\|[^>]+>/', $input);

В этом регулярном выражении:

  • <\* совпадений <*;
  • [^|]+ соответствует любому символу, кроме | 1 .. * раз;
  • \| соответствует |;
  • [^>]+ соответствует любому символу, кроме> 1 .. * раз;
  • > совпадений >.

С этим входом:

$input = <<<EOL
<*fixedTagName|Dynamic part of tag name> // * and | are included in fixed part of tag name
                                   //dynamic part can have spaces between words

  Random text I need to get of unknown length

  some paragraphs of text can start like this(look bellow)

  » name: value
  » name: value

<*fixedTagName|Dynamic part of tag>

  More random text I need to get

<*fixedTagName|Dynamic part of tag>

  Final part of random text I need to get
EOL;

$result будетбыть массивом строк что-то вроде этого:

Array
(
    [0] => 
    [1] =>  // * and | are included in fixed part of tag name
                                   //dynamic part can have spaces between words

  Random text I need to get of unknown length

  some paragraphs of text can start like this(look bellow)

  » name: value
  » name: value


    [2] => 

  More random text I need to get


    [3] => 

  Final part of random text I need to get
)
0 голосов
/ 25 августа 2018

Я думаю, что этот ответ StackOverflow полностью объяснит, как вы можете сделать это: https://stackoverflow.com/a/3577662/7578179

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...