2015-02-26 1 views
1

это моя проблема, я не очень хорошо с регулярными выражениями, мне нужно разбить строку таким образом, например, у меня есть эта строка:Regex для разбиения строки с некоторыми условиями в PHP

1002;string1<br> 
string2<br> 
string3 
1003;string1<br> 
string2<br> 
string3 

Поэтому мне нужно разбить всю строку таким образом: отделяющий каждый блок элемента, в приведенном выше случае: один из них будет:

1003;string1<br> 
string2<br> 
string3 

Я попытался разделить на $data = explode("\n", $string);, но она разделяет каждую строку, и я хочу игнорировать, если \n предшествует <br>, I Предположим, я должен использовать регулярные выражения, возможно, используя функцию preg_split()?

Заранее спасибо

ответ

2

Вы можете использовать:

$matches = preg_split('/(?<!<br>)\n/', $input); 

RegEx Demo

Это разделит вход, когда <br> не там до \n.

+0

Привет! спасибо за ваш ответ, но мне точно нужно регулярное выражение, которое разбивается на \ n, которому не предшествует
. Выше сценарий - всего лишь пример не совсем той же проблемы, что и у меня. Благодаря! –

+0

** splits by \ n, которому не предшествует
**, также будет разделяться после '1002' и после' 1003', и это не будет соответствовать ожидаемому результату. – anubhava

+0

Извините, exmaple не было хорошо, я отредактировал вопрос. –