SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Малко помощ за RegEx

shangren

New member
Може ли някой да помогне с regular expressions въпрос? Искам да направя regex, който да открива долния код
Код:
  <title>
        Старо заглавие
    </title>
След това с replace в Dreamweaver да взема заглавие от тук
Код:
<span class="style6">Ново заглавие</span>
 
Последно редактирано:
Re: Малко помощ за RegEx

Мисля, че най-лесно би ти било, ако използваш Notepad++, особено ако имаш 200-300 файла в които да замениш стринга. Избираш "Find in files..." и слагаш следните критерии за търсене и замяна, като разбира се избереш директорията и типа файлове в които да рови:
2enp1jq.png
 
Re: Малко помощ за RegEx

Каква е тази опция Extended (\n, \r, \t, \0, \x...)?
Става въпрос за хиляди записа и с обикновена комбинация find and replace няма да стане, защото стойностите са променливи. Затова търся някой да помогне с regular expression (има го и в Notepad++)
 
Re: Малко помощ за RegEx

правилно към regular expression си се насочил, но ще ти трябва скрипт за тази работа. Поне аз не мога си представя че Dreamweaver поддържа опция да запазва променливи при търсенето и заместването :)

регекспа ти е нещо от рода на:
(?i)<title\\s[^>]*>(.+?)</title>
(?i)<span\\s[^>]*class\\s*=\\s*\"style6\">(.+?)</span>

съответно заместваш в целият текст - група едно (онова в скобките се казва група) от вторият регексп заместваш с резултата от група 1 намерена от първия регексп. тук таме ескейповете може да са ми в повече в зависимост на какъв език ще ти е скрипта ;)
 
Re: Малко помощ за RegEx

Каква е тази опция Extended (\n, \r, \t, \0, \x...)?
Става въпрос за хиляди записа и с обикновена комбинация find and replace няма да стане, защото стойностите са променливи. Затова търся някой да помогне с regular expression (има го и в Notepad++)
Extended е разширение (с някои RegEx) на обикновеното търсене със замяна. Notepad++ е идеален за това, за което питаш. Другите ти варианти са sed, grep, (g)awk, perl...
 
Re: Малко помощ за RegEx

правилно към regular expression си се насочил, но ще ти трябва скрипт за тази работа. Поне аз не мога си представя че Dreamweaver поддържа опция да запазва променливи при търсенето и заместването :)

регекспа ти е нещо от рода на:
(?i)<title\\s[^>]*>(.+?)</title>
(?i)<span\\s[^>]*class\\s*=\\s*\"style6\">(.+?)</span>

съответно заместваш в целият текст - група едно (онова в скобките се казва група) от вторият регексп заместваш с резултата от група 1 намерена от първия регексп. тук таме ескейповете може да са ми в повече в зависимост на какъв език ще ти е скрипта ;)

Успях и аз да направя RegEx с променливи при търсенето и Dreamweaver ги открива без грешка. Проблемът е със заместването на стойностите, при команда replace се замества с втория regex вместо с реално съдържание. Как мога да направя скрипт при заместване да се използва първата открита от regex-a стойност (в случая "Ново заглавие")?
 
Re: Малко помощ за RegEx

именно ... затова писах че най-вероятно ще ти трябва скрипт.
DreamWeaver не ползвам и не мога да кажа, виж там горе някой беше писал че NotePad++ можел да ти свърши работа. Свали си го и пробвай програмата е безплатна. Макар че точно за това за което Ти трябва не вярвам да има начин да стане и в НотеПад++ ... на Теб ти трябва текста който е вътре в групата, а не целият матч ... аз поне не съм ползвал за такива неща НотеПад, но пък може и да бъркам и да има някъде някоя вълшебна функция из менютата или пък плъгин.
И пак казвам аз бих си направил малък скрипт който обхожда директориите, матчва двата стринга (търсените групи) и реплесва единият с другият.
 
Re: Малко помощ за RegEx

да не пускам нова тема.

имам

PHP:
if (!preg_match("/^[А-Яа-яa-zA-z0-9 .-_@]{20,150}$/i", $messg2)){
само горните символи са разрешени
}

как да добавя още символи
, ! ? и нов ред

нещо ми бяга ескейпването им.
 
Re: Малко помощ за RegEx

и аз така знам,
но защо тогава

PHP:
if (!preg_match("/^[А-Яа-яa-zA-z0-9 .-_@,]{20,150}$/i", $messg2)){ 
само горните символи са разрешени 
}

допуска следните символи: >< ? и можеби други но не съм пробвал.

по оринцип особенно <> трябва да са забранени.
 

Горе