View previous topic :: View next topic |
Author |
Message |
KF-121

Joined: 13 Feb 2006 Posts: 90
|
(Separately) Posted: Mon Sep 04, 2006 19:06 Post subject: |
|
|
И всеже про регекспы:
Почему у тебя и у тотала разные регекспы.
Например у ТС блабла.*албалб - это распознается как в однойстроке где втречается блабла, а в оставшейся части он находит албалб.
У тебя же это приводит к выделению всего текста между блабла и албалб жаде если они не находятся в одной строчке.
Не хорошо. _________________ Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121 |
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Mon Sep 04, 2006 20:45 Post subject: |
|
|
В тотале сделано не по стандарту. По умолчанию в php и perl регекспы жадные (greedy), и в JavaScript по-моему тоже. Мне так тоже привычнее. _________________ Syn |
|
Back to top |
|
 |
evkogan
Joined: 25 Aug 2005 Posts: 19
|
(Separately) Posted: Tue Sep 05, 2006 09:02 Post subject: |
|
|
Quote: | Уже реализована возможность использовать naming patterns в регекс строках |
Да действительно
Для правильно
\n\s*?(?P<type>[a-z\*]+)(\s+[_a-z]+)?\s+(?P<name>[a-z_\~][a-z0-9_\:]*)\s*?(?P<param>\([^)]*\))\s*?
При этом остаются ложные срабатывания на строках типа
else if ((fd.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)==0)
Но как это исключить я не знаю.
А что по поводу ^ и $
Почему он их не находит? |
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Tue Sep 05, 2006 09:34 Post subject: |
|
|
Quote: | Но как это исключить я не знаю. |
ну в данном случае что ты привел, можно просто
^\s*?(?P<type>[a-z\*]+)(\s+[_a-z]+)?\s+(?P<name>[a-z_\~][a-z0-9_\:]+)\s*?(?P<param>\([^\(\)]*\))\s*?
или след. символ после обращения к функции должен быть ; или { а не =.
Quote: | Почему он их не находит? |
в каком случае не находит? это начало и конец строки, поиск идет с модификатором М, у меня нормально находит. _________________ Syn |
|
Back to top |
|
 |
mai62
Joined: 06 Sep 2006 Posts: 8 Location: Россия
|
(Separately) Posted: Wed Sep 06, 2006 03:22 Post subject: |
|
|
Предлагаю модифицированный вариант регулярного выражения для C++
^\s*?(?P<type>[\w\*]+)(\s+\w+)?\s+(?P<name>[\w\~][\w\:]+)\s*?(?P<param>\(([^\(\)!=<>]+\s[^\(\)!=<>\s]+\s*|\s*void\s*)\))\s*? |
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Wed Sep 06, 2006 09:03 Post subject: |
|
|
Спасибо. Вы только с evkogan договоритесь, а то мне С++ не на чем тестить. У него вон считается что в name могут еще быть '_'. И я обновлю в след версии. _________________ Syn |
|
Back to top |
|
 |
mai62
Joined: 06 Sep 2006 Posts: 8 Location: Россия
|
(Separately) Posted: Wed Sep 06, 2006 22:39 Post subject: |
|
|
\w - буквенно-цифровой символ или "_" |
|
Back to top |
|
 |
evkogan
Joined: 25 Aug 2005 Posts: 19
|
(Separately) Posted: Thu Sep 07, 2006 10:07 Post subject: |
|
|
Согласен с вариантом mai62. |
|
Back to top |
|
 |
evkogan
Joined: 25 Aug 2005 Posts: 19
|
(Separately) Posted: Fri Sep 08, 2006 08:56 Post subject: |
|
|
Баг
Code: |
Текст типа
10.24.10.101 {(Unresolved Name)}
HP JetDirect
10.24.10.117 {(Unresolved Name)}
HP JetDirect
10.24.10.22 {(Unresolved Name)}
HP JetDirect
Поиск
}\r\n
Замена
};
|
Заменить Все
В результате в первой строке в начале добавляется лишняя 1 |
|
Back to top |
|
 |
Sam Dark

Joined: 25 Apr 2005 Posts: 484 Location: Voronezh, Russia
|
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Fri Sep 08, 2006 22:46 Post subject: |
|
|
v 1.4
- Сброс выделения из истории при открытии файла
- В контекстное меню дерева добавлен пункт включения сортировки
- Позиция в строке теперь отсчитывается от нуля в статусбаре
- Внутренний дизайнер можно ассоциировать с *.hgl файлами
- Панель буфера обмена
- Символы ASCII
- Исправлен расчет гуттера когда шрифт гуттера отличался от шрифта текста
- Исправлено неверное уменьшение ширины гуттера при свертывании строк
- Баг с самым первым символом файла при Replace All
- Опция для отключения хинтов в дереве (если неправильно перерисовывается дерево)
- Подсветка текущего отступа для курсора
- Пропуск ключевого слова CodeFolding'a если оно было найдено в "строке"/коментарии и его тип Character (Нет поддержки для типа Keyword пока)
Quote: | \w = только буква! И никак иначе. |
Действительно, я посмотрел в справке php, в \w входит _
\w any "word" character
A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word".
к тому же проверить это было не трудно =) _________________ Syn |
|
Back to top |
|
 |
mai62
Joined: 06 Sep 2006 Posts: 8 Location: Россия
|
(Separately) Posted: Fri Sep 08, 2006 23:01 Post subject: |
|
|
Sam Dark wrote: | mai62
Должно быть:
\w = только буква! И никак иначе. |
Это же не я придумал, так оно в документации, так и в реальности. |
|
Back to top |
|
 |
KF-121

Joined: 13 Feb 2006 Posts: 90
|
(Separately) Posted: Sat Sep 09, 2006 11:19 Post subject: |
|
|
В всерсии 1.3 Сильно глючит подсветка для строки заключенной в "". Сбивается диапазон и все красится в цвет этой строки. После нескольких манипуляций все возвращается на места свои. а именно открываешь дизайнер на подсветки и просто кликаешь ок. и будет тебе счатье. Подсветка своя. но сделанно на основе VBS. _________________ Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121 |
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Sat Sep 09, 2006 13:29 Post subject: |
|
|
Ну зашли подсветку и как баг увидеть на мыло. Или в 1.4 уже нет бага? _________________ Syn |
|
Back to top |
|
 |
KF-121

Joined: 13 Feb 2006 Posts: 90
|
(Separately) Posted: Sat Sep 09, 2006 13:51 Post subject: |
|
|
Тока поставил 1,4 пока баг не наблюдается, если что напишу. _________________ Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121 |
|
Back to top |
|
 |
|