powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Глюк движка регулярных выражений?
4 сообщений из 4, страница 1 из 1
Глюк движка регулярных выражений?
    #32630262
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вот код рег выражения:

Код: plaintext
1.
2.
3.
4.
update(\s)*(\t)*(\\r\\n)*(\s)*(\t)*(\w)+(\s)*(\t)*(\\r\\n)*(\s)*(\t)*set(\s)*(\t)*(\\r\\n)*(\s)*(\t)*
((,)?(\w)+\.(\w)+(\s)*(\t)*(\\r\\n)*(\s)*(\t)*=(\s)*(\t)*(\\r\\n)*(\s)*(\t)*
(\w+\.)?((\w+|@\w+)|('(\s)*(\w)+(\s)*'|\w+\(*\)))(\s)*(\t)*(\\r\\n)*(\s)*(\t)*)+
(\s)*(\t)*(\\r\\n)*(\s)*(\t)*
from(\s)*(\t)*(\\r\\n)*(\s)*(\t)*aaa

Такой вот текст в котором ищем:
Код: plaintext
1.
2.
3.
4.
update card set  
     card.IsLocked =  1   
    ,card.EditAt  = GETDATE()  
    ,card.EditBy  = @emID_Edit   
  from test
Программа глохнет намертво, причем не только мой код и нетовский редактор рег выражений тоже ласты клеит... Может кто-то мне объяснит в чем прикол?
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
Глюк движка регулярных выражений?
    #32630266
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть конечно еще вариант что код рег выражения глюкавый, но почему нет эксепшена или хоть какогото знака что приехали? Причем зацикливание происходит не при поиске, а при попытке обратиться к результатам... Смотрел что тама в середине результатов в смысле, все свойства couldnt be defined...
:(
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
Глюк движка регулярных выражений?
    #32630268
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в догонку,
Так все ок:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
update(\s)*(\t)*(\\r\\n)*(\s)*(\t)*(\w)+(\s)*(\t)*(\\r\\n)*(\s)*(\t)*set(\s)
*(\t)*(\\r\\n)*(\s)*(\t)*
((,)?(\w)+\.(\w)+(\s)*(\t)*(\\r\\n)*(\s)*(\t)*=(\s)*(\t)*(\\r\\n)*(\s)*(\t)*(\w+\.)?
((\w+|@\w+)|('(\s)*(\w)+(\s)*'|\w+\(.*\)))(\s)*(\t)*(\\r\\n)*(\s)*(\t)*)+
(\s)*(\t)*(\\r\\n)*(\s)*(\t)*
from(\s)*(\t)*(\\r\\n)*(\s)*(\t)*
update card set  
     card.IsLocked =  1   
    ,card.EditAt  = GETDATE()  
    ,card.EditBy  = @emID_Edit   
  from test
И так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
update(\s)*(\t)*(\\r\\n)*(\s)*(\t)*(\w)+(\s)*(\t)*(\\r\\n)*(\s)*(\t)*set(\s)
*(\t)*(\\r\\n)*(\s)*(\t)*
((,)?(\w)+\.(\w)+(\s)*(\t)*(\\r\\n)*(\s)*(\t)*=(\s)*(\t)*(\\r\\n)*(\s)*(\t)*
(\w+\.)?
((\w+|@\w+)|('(\s)*(\w)+(\s)*'|\w+\(.*\)))(\s)*(\t)*(\\r\\n)*(\s)*(\t)*)+
(\s)*(\t)*(\\r\\n)*(\s)*(\t)*
from(\s)*(\t)*(\\r\\n)*(\s)*(\t)*test
update card set  
     card.IsLocked =  1   
    ,card.EditAt  = GETDATE()  
    ,card.EditBy  = @emID_Edit   
  from test
А в исходном варианте хрен...
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
Глюк движка регулярных выражений?
    #32630269
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сам спросил сам и отвечу, правильный вариант выражения оказался:
Код: plaintext
update .* set .* = .* from .* test
Как все бывает просто...
Но объяснить поведение движка я всеравно не могу :(
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Глюк движка регулярных выражений?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]