Что нового

Вытащить телефон без пробелов, дефисов и внутреннего тега

mef-t

Осваивающий
Сообщения
306
Репутация
30
Добрый день.
Существует такого рода код
Код:
<div class="phone"><span>+7 (890)</span> 123-45-67</div>

Помогите вытащить значение "78901234567". Требуется регулярное выражение, так как значений на сайте много
Пробовал таким образом:

Код:
$pData = StringRegExpReplace($pData, '</span>', '')
$arrList = StringRegExp($pData, $phone, 3)


Так я избавился от внутреннего тега. Но возможно ли все сделать в одном регулярном выражении? Без использования замен?
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
inververs
А при большом количестве в тексте номеров и не только не получится ли одна очень длинная строка из цифр? )
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
WSWR
получится конечно).
Но вдруг он парсит только такие div, тогда все ок.
 
Автор
mef-t

mef-t

Осваивающий
Сообщения
306
Репутация
30
Код:
<div class="phone"><span>+7 (890)</span> 123-45-67</div>
<div class="лишние номера">2345апе25</div>
В этом коде так же должно быть только "78901234567"
А при Вашем подходе я этого уже не смогу добиться
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
mef-t
В первоначальном варианте и не было второго div так что все честно ;D
 
Автор
mef-t

mef-t

Осваивающий
Сообщения
306
Репутация
30
Я поправился.
В действительности я бы хотел обойтись только одним "StringRegExp". Это возможно?
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Код:
$sText=StringRegExpReplace($sText, '<[^<>]+>', '')

Код:
$sText=StringRegExpReplace($sText, '<div class="phone"><span>(\+\d) \((\d{3})\)</span> (\d{3})-(\d{2})-(\d{2})</div>', '\1\2\3\4\5')

я думал из кармана вытащить телефон.
 
Верх