Премахнете всички запетаи в таговете ‹title›

Последният човек в моята позиция беше щастлив със запетая в етикетите за заглавие. Трябва да премахна всички запетаи в заглавните тагове на 40 000 html продуктови страници. Има ли регулярен израз за намиране на всички запетаи в заглавен таг? Надявам се, че мога да намеря всички запетаи с регулярен израз и да ги заменя в Dreamweaver. Възможно ли е това?

Форматът обикновено следва

(начален заглавен етикет)Продукт, Продукт, 81120,
(начален заглавен етикет)Продукт Продукт, Продукт, 98564,
(начален заглавен етикет)Продукт Продукт, Продуктов продукт, 98564,
(начален заглавен етикет) Продукт, Продукт Продукт, 98564,

числото в края е 5-цифрен продукт #

Всяка помощ ще бъде високо оценена


person user2005514    schedule 23.01.2013    source източник
comment
моля, дайте ни точния формат, всичко ли е между ‹заглавие›‹/заглавие›? Ще трябва да сте малко по-конкретни   -  person Destrictor    schedule 24.01.2013
comment
Наистина ли няма затварящ таг за заглавие?   -  person John Dvorak    schedule 24.01.2013
comment
‹title›Word, Word, 81120, Word Word Word Word‹/title›   -  person user2005514    schedule 24.01.2013
comment
Всичко е между таговете ‹title›‹/title›   -  person user2005514    schedule 24.01.2013
comment
съжалявам, че не бях по-конкретен   -  person user2005514    schedule 24.01.2013


Отговори (3)


Можете да потърсите запетая, след която </title> е това, което следва след първото < след запетаята, и да ги замените с празен низ:

,(?=[^<]*</title>)

Имайте предвид, че това предполага, че ще правите това в редактор. Никога не се доверявайте на регулярни изрази, когато става въпрос за непознат HTML. Ако ще използвате това в кода, по-добре е да използвате DOM анализатор, за да обхванете правилно вашата замяна. Той също така предполага, че или низът </title> няма да се появи извън контекста (като в кода на javascript) или можете да прегледате процеса на заместване ръчно, където този регулярен израз може да се обърка. (чия идея беше отново да имаме 40k HTML файла? Дано не създават нови тагове за заглавия!).

person John Dvorak    schedule 23.01.2013

Добър блог, описващ как да го направите в PHP: http://www.thatsquality.com/articles/how-to-match-and-replace-content-between-two-html-tags-using-regular-expressions

Мисля, че за да направите това в dreamweaver, ще искате нещо, използващо обратна препратка като:

(<Title>\S\s),+(\S\s<\/Title>)

С това в Replace: $1 $2

Както беше посочено - ще трябва да повторя това до успех - мислех, че това е нещо, което IDE ще поддържа, но това вероятно не е така.

Добра публикация тук: http://somerandomdude.com/2006/05/25/dreamweaver-regular-expressions/

person Matthew    schedule 23.01.2013
comment
Ще трябва да изпълните този регулярен израз няколко пъти, за да се отървете от всички запетаи. - person John Dvorak; 24.01.2013
comment
Предупреждение: не е запознат с Dreamweaver и адаптиран . - person Matthew; 24.01.2013
comment
Защо да поставяте \ преди, в []? Само групи (\s за интервали, \S за неинтервали) изискват екраниране. - person Destrictor; 24.01.2013
comment
Затварящите скоби и обратните наклонени черти на @Destrictor също се нуждаят от екраниране, дори в класове знаци - person John Dvorak; 24.01.2013
comment
@Destrictor променяше по-ранен отговор, без да добавя мисъл. - person Matthew; 24.01.2013
comment
@JanDvorak И така - поставянето на регулярен израз в dreamweaver и натискането на „Замяна на всички“ (ако това е опция) няма ли да стартира регулярния израз, докато не се провали? - person Matthew; 24.01.2013
comment
@Matthew Предполагам, че не замества припокриващи се съвпадения или рекурсивно. В противен случай може да попадне в безкрайни цикли. - person John Dvorak; 24.01.2013
comment
Още две надстройки: защо запетаята е обвита в символен клас и защо е обвита в група за улавяне? - person John Dvorak; 24.01.2013
comment
@JanDvorak И двете се подобриха - и гласуваха вашия като по-добър отговор :) - person Matthew; 24.01.2013

Можете да използвате този регулярен израз: ([\,]+)

person Alexandru Calin    schedule 23.01.2013
comment
Това ще премахне всички запетаи, не само в заглавието. - person John Dvorak; 24.01.2013
comment
Интересувам се от регулярния израз. Все още ли го актуализирате? - person John Dvorak; 24.01.2013