Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.11.2016, 11:31
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Помогите составить регулярное выражение
Добрый день!

Подскажите, пожалуйста, как с помощью регулярных выражений PHP получить строку, у которой в начале и в конце (ВАЖНО!) строки НЕ стоит тег div (не обрамляет её (строку))?

Пример:

// эту строку не надо
<div>Lorem ipsum.</div>

// эту строку надо
<div>Lorem</div> ipsum.

// эту строку надо
Lorem ipsum.

// и эту строку надо
<li>Lorem ipsum.</li>

// эту не надо
<div><span>Lorem ipsum.</span></div>
Ответить с цитированием
  #2 (permalink)  
Старый 01.11.2016, 13:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от snovapavel
получить строку, у которой в начале и в конце (ВАЖНО!) строки НЕ стоит тег div
Начать можно с этого...

var arr=[
	'<div>Lorem ipsum.</div>',
	'<div>Lorem</div> ipsum.',
	'Lorem ipsum.',
	'<li>Lorem ipsum.</li>',
	'<div><span>Lorem ipsum.</span></div>'
];
var reg=/^<div>.*(?=<\/div>$)/i;
for (var i=0; i<arr.length; i++) {
	alert(arr[i]+' - '+((reg.test(arr[i]))? 'не брать': 'брать'));
};
Ответить с цитированием
  #3 (permalink)  
Старый 01.11.2016, 14:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

ksa,
это не РНР.
Ответить с цитированием
  #4 (permalink)  
Старый 01.11.2016, 14:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от laimas
это не РНР
Там разный подход к регулярным выражениям? Или синтаксис другой?
Ответить с цитированием
  #5 (permalink)  
Старый 01.11.2016, 14:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от laimas
это не РНР
Если верить этому
http://www.skillz.ru/dev/php/article...chaynikov.html
Различий не так уж и много...
Ответить с цитированием
  #6 (permalink)  
Старый 01.11.2016, 14:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ksa
Там разный подход к регулярным выражениям? Или синтаксис другой?
В РНР рег. выражения Perl совместимые и конечно богаче, чем в JS. И задается строка, а не массив. Чего нет точно в РНР, так это for (var i=0; i<arr.length; i++)

Да и не нужно этого, проще удалить непотребное, оставив нужное, и если каждая строка не имеет переносов, то просто:

$s = '<div>Lorem ipsum.</div>
 
<div>Lorem</div> ipsum.
 
Lorem ipsum.
 
<li>Lorem ipsum.</li>
 
<div><span>Lorem ipsum.</span></div>';

$s = preg_replace('/<div>.+<\/div>/', '', $s);

echo $s;

Последний раз редактировалось laimas, 01.11.2016 в 14:29.
Ответить с цитированием
  #7 (permalink)  
Старый 01.11.2016, 14:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ksa
Если верить этому .... Различий не так уж и много...
Не верьте, рег. выражениям JS до рег. выражений Perl как пехом до Берлина.
Ответить с цитированием
  #8 (permalink)  
Старый 01.11.2016, 14:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от laimas
Да и не нужно этого, проще удалить непотребное, оставив нужное
Ты спец - тебе видней...
Ответить с цитированием
  #9 (permalink)  
Старый 01.11.2016, 16:30
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

laimas,

Здравствуйте, мне не надо удалить, мне нужно, если это не блок див, то обернуть параграф тегом p, чтобы вышло так:

Было:

<div>Lorem ipsum.</div>

<div>Lorem</div> ipsum.

Lorem ipsum.

<li>Lorem ipsum.</li>

<div><span>Lorem ipsum.</span></div>


Стало:

<div>Lorem ipsum.</div>

<p><div>Lorem</div> ipsum.</p>

<p>Lorem ipsum.</p>

<p><li>Lorem ipsum.</li></p>

<div><span>Lorem ipsum.</span></div>

Последний раз редактировалось snovapavel, 01.11.2016 в 17:23.
Ответить с цитированием
  #10 (permalink)  
Старый 01.11.2016, 18:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от snovapavel
обернуть параграф тегом p
Нужно просто возвратиться к предыдущей теме.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите составить регулярное выражение для числа с плавающей точкой boomrest Общие вопросы Javascript 4 25.02.2015 11:17
Помогите составить регулярное выражение yura29 Общие вопросы Javascript 3 08.06.2014 00:35
Помогите, пожалуйста, составить регулярное выражение sbudyakov Общие вопросы Javascript 5 07.08.2013 22:51
Составить регулярное выражение для гугла alerzo Events/DOM/Window 1 18.02.2013 16:55
Помогите составить регулярное выражение Ucorp Общие вопросы Javascript 1 17.10.2012 16:28