помогите с регуляркой. есть символ, а может нет

12
J
На сайте с 08.06.2006
Offline
844
768

сам пробовал так "[<br>]?", но не проходит.

как правильно?

спасибо!

---------- Добавлено 29.09.2016 в 17:15 ----------

...текст...(нужный мне текст1)[может <br> быть, а может нет - просто даже не пробел. ничего.](нужный мне текст2)...текст..

M
На сайте с 04.12.2013
Offline
223
#1

Вопрос после круглых скобок.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
A
На сайте с 28.09.2016
Offline
1
#2

Если парсер, то не мешало бы убрать регистрозависимость.

<BR> и <br> воспринимаются по разному

и добавить "ИЛИ" <br />

J
На сайте с 08.06.2006
Offline
844
#3

miketomlin, не совсем понял

---------- Добавлено 29.09.2016 в 20:51 ----------

А!

если будет в круглых в скобках, то мне выдернет тот текст, что там окажется

или что Вы имели ввиду?

M
На сайте с 04.12.2013
Offline
223
#4

Если вам нужно что-то «выдернуть», то так и пишите. Я всего лишь про регулярку написал «есть <br>, а может нет». Вам нужно было круглые скобки использовать вместо кв. А если бы речь шла всего лишь об одном символе, то вообще никаких скобок не нужно.

J
На сайте с 08.06.2006
Offline
844
#5
"/<strong>(.*)<\/strong>[<br>]?(.*)<br>/isU"

что я тут не правильно написал?

---------- Добавлено 30.09.2016 в 12:41 ----------

[<br>]? - так я записал выражение "<br> может быть и может не быть "

правильно ли? наверное нет - так как не работает как нужно (где есть <br> там не реагирует)

как правильно? спасибо!

---------- Добавлено 30.09.2016 в 12:42 ----------

miketomlin:
Вам нужно было круглые скобки использовать вместо кв

с круглыми не идет тоже

ни так "/<strong>(.*)<\/strong>(<br>)?(.*)<br>/isU"

ни так "/<strong>(.*)<\/strong>[<br>]?(.*)<br>/isU"

---------- Добавлено 30.09.2016 в 12:46 ----------

и даже так "/<strong>(.*)<\/strong>(.*)<br>|<strong>(.*)<\/strong><br>(.*)<br>/isU"

не видит <br>

а если оставить в регулярке чисто с <strong>(.*)<\/strong><br>(.*)<br> - так все ок

A
На сайте с 28.09.2016
Offline
1
#6
joost:
что я тут не правильно написал?

---------- Добавлено 30.09.2016 в 12:41 ----------

[<br>]? - так я записал выражение "<br> может быть и может не быть "

правильно ли? наверное нет - так как не работает как нужно (где есть <br> там не реагирует)

как правильно? спасибо!

---------- Добавлено 30.09.2016 в 12:42 ----------


с круглыми не идет тоже

ни так "/<strong>(.*)<\/strong>(<br>)?(.*)<br>/isU"
ни так "/<strong>(.*)<\/strong>[<br>]?(.*)<br>/isU"

---------- Добавлено 30.09.2016 в 12:46 ----------

и даже так "/<strong>(.*)<\/strong>(.*)<br>|<strong>(.*)<\/strong><br>(.*)<br>/isU"

не видит <br>

а если оставить в регулярке чисто с <strong>(.*)<\/strong><br>(.*)<br> - так все ок
joost:
что я тут не правильно написал?

"/<strong>(.*)<\/strong><br>(?:<br>)?/uis"

W
На сайте с 18.09.2006
Offline
86
#7

Вам нужно использовать ленивый квантификатор , потому что во входящей строке могут встретится еще STRONG и тогда все что написано работать будет не правильно

Более точный ответ можно дать если вы дадите конкретный пример

фрагмент входящих данных

Например вот такая регулярка

@<strong>(.*?)</strong><br[^>]*>(?:(.*?)(?:<br[^>]*>))?@smiu

примененная вот к этому тексту

ajndkasndkjasn kjsn <strong>111</strong><br>fgdfgdf<br> asjdjh aksjd 

asdla ksdasd lakjs<strong>222</strong><br>asjd asdjlja sl

Вернет следующее

Всего совпадений: 2

1: <strong>111</strong><br>fgdfgdf<br>
2: <strong>222</strong><br>
1.1: 111
1.2: fgdfgdf
2.1: 222
2.2:
J
На сайте с 08.06.2006
Offline
844
#8
Actav:
"/<strong>(.*)<\/strong><br>(?:<br>)?/uis"

что-то ничего не выбирает

---------- Добавлено 30.09.2016 в 15:07 ----------

wanick:
@<strong>(.*?)</strong><br[^>]*>(?:(.*?)(?:<br[^>]*>))?@smiu

нельзя никак проще записать "может быть <br>, а может не быть " ?

---------- Добавлено 30.09.2016 в 15:09 ----------

реальный текст <strong>Адрес:<\/strong>Ленина 8, кв.6<br><strong>Адрес2:<\/strong><br>Илькова 123, кв.54<br>

A
На сайте с 28.09.2016
Offline
1
#9
joost:
реальный текст <strong>Адрес:<\/strong>Ленина 8, кв.6<br><strong>Адрес2:<\/strong><br>Илькова 123, кв.54<br>

А что именно нужно выбрать?

J
На сайте с 08.06.2006
Offline
844
#10
Actav:
А что именно нужно выбрать?

Адрес: Ленина 8, кв.6

Адрес2: Илькова 123, кв.54

"Адрес" в регулярке не использовать. Там что угодно может быть ("место жительства", "прописка", "проживание" и т.д.)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий