Регулярные выражения

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

Найти многострочно: ^.*?(http://\S*).*?$
Заменить на: $1

Вместо \S можно прописать какой-то определенный набор допустимых в ссылке символов, а перед скобкой добавить пробел или \s, дабы отступ сделать обязательным условием - тут смотря как ссылки отделены от остального текста.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

qvent
А getLinks.js не подойдет?

Offline
Posts: 2
Joined: Fri Oct 05, 2012 12:53 pm

Post by qvent »

Infocatcher, , браво! Спасибо огромное!!!!

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Ребята, подскажите, как сделать так, чтобы во из всего файла оставить только уникальные фразы? То есть, если фразы 2 и более, то удалять абсолютно все вхождения этих фраз.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

VladSh wrote:как сделать так, чтобы во из всего файла оставить только уникальные фразы?
Алгоритм примерно такой:
1. дать определение, что такое "фраза", и чем она ограничена
2. на основании пункта 1 сформировать правила для написания кода
3. на основании пункта 2 написать код :)
Без скрипта, думается, не обойтись (вначале проверить, что кол-во вхождений >= 2, затем ReplaceAll на пустую строку).

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

VladSh
Assuming that "фраза" is any sequence of characters (minimum 3) delimited by spaces or begining/end of line:

Code: Select all

var oRE1 = /(^| )(.{3,})( |$)(.+?)\2/m;
var oRE2;
var sText;
var aMatch;

AkelPad.SetSel(0, -1);
sText = AkelPad.GetSelText();

while (aMatch = oRE1.exec(sText))
{
  aMatch[2] = aMatch[2].replace(/[\\\/.^$+*?|()\[\]{}]/g, "\\$&");
  oRE2 = new RegExp(aMatch[2], "g");
  sText = sText.replace(oRE2, "");
}

AkelPad.ReplaceSel(sText);

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

DV, KDJ
Thank you very much!
More please tell me how to change the code if need only "begining / end of line"?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

VladSh
If "фраза" means entire line, you can use "Format::LineGetUnique" from Format plugin.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

KDJ
Thanks, I forgot something about it)

Offline
Posts: 89
Joined: Wed Aug 27, 2008 11:16 am

найти начало строки

Post by Mr.Merak »

А подскажите плз, как в диалоге замены указать начало строки?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Mr.Merak
Regular expressions: ^

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

KDJ
??? Don't work...

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Serge Yolkin
Oh yes, in AkelPad version 4.7.9 is a bug.
Will work in ver. 4.8.0: http://akelpad.sourceforge.net/files/AkelPad.zip

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Помогите пожалуйста, голову сломал - нужно получить из путей "дедушкино" имя одним рег. выражением, чтобы из

C:\02\111\папка\ осталось 02

а от

C:\_02\111\папка\файл.txt осталось 111

разными получается, может одним рег. получится

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Andrey_A_A
Напиши для примера, интересно же :)
Post Reply