2015-04-10 2 views
0

У меня есть, например, этот переменный:Извлечение строки из переменных, за исключением тех, в BBcode

$variable = "Lorem Ipsum dolor sit amet [url=http://loremipsum.com]Lorem Ipsum[/url]"; 

Моя цель, чтобы получить только те строки, которые не являются в [URL] BBcode.
Например, если вы хотите получить строку «lorem», она выберет только первую, опуская строку в [url]).

Как я могу это сделать?

+0

так вы имеете в виду вы хотите найти «Lorem» и он должен возвратить «Lorem Ipsum dolor sit amet» опуская содержимое внутри []? – Dzyann

+0

Нет, я хочу просто вернуть все «lorem», опустив содержимое внутри [url] bbcode. – Siper

+0

Итак, покажите нам, что вы пробовали до сих пор. Возможно, вы захотите прочитать [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask), что увеличивает вероятность получения полезного ответа _drastically_. Вы можете найти превосходный эссе [ESR] (https://en.m.wikipedia.org/wiki/Eric_S._Raymond) [Как задавать вопросы Smart Way] (http://catb.org/~esr/ faqs/smart-questions.html) тоже полезно. –

ответ

1

Вы можете использовать технику сброса. Например, вы можете использовать это регулярное выражение:

\[.*?\]|(lorem) 

Working demo

enter image description here

Затем возьмите содержимое из группы захвата.

С другой стороны, если вы хотите, чтобы захватить полные строки, которые не внутри тегов, вы можете использовать:

\[.*?\]|([\w\s]+)