Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: регулярные выражения - слова через запятую Добавлено: 15.08.07 14:35  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 
Млин, вроде бы элементарная задача, а никак не могу вдолбиться.
Какое регулярное выражение будет совпадать с этим:
(c1,c2,c3,c4)
(c1)
но не будет совпадать с этим:
(,c1,c2,c3,c4)
(c1,,c2)
()
(c1,c2,)

т.е. нужны слова через запятую

вот такая (\((?:\w+\,?)+\)) канитель вроде бы проходит, но допускает запятую в конце, а мне этого не нужно

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #1
Добавлено: 15.08.07 14:58
(c1,c2,c3,c4)
(c1)
(,c1,c2,c3,c4)
(c1,,c2)
()
(c1,c2,)

---------------------
\((?<фигня>[\w\,]+)([^\,])\)

(c1,c2,c3,c4)
(c1)
(,c1,c2,c3,c4)
(c1,,c2)
---------------------
\(([^\,])(?<фигня>[\w\,]+)([^\,])\)

(c1,c2,c3,c4)
(c1)
(c1,,c2)


Ответить

Номер ответа: 2
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #2
Добавлено: 15.08.07 15:07
\(((?<косяк>[\w]+?)([\,]{0,1}))+([^\,])\)
или
\(((?<запятая1>[\,]{0,1})(?<слово>[\w]+)(?<ещЗапятая>[\,]{0,1}))+\)

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 15.08.07 15:15
\(([^,\)]+,)*?[^,\)]+?\)

Ответить

Номер ответа: 4
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #4
Добавлено: 16.08.07 00:14
ах вон оно что!
[^,]? - это что мне нужно было :)
кстать не просто [^,], а именно с вопросиком, чтобы (a) тоже попадало.
пасиб!

ну а я тут времени тоже не терял, сделал немного по-другому - типа как (\(\w+(,\w+)*\))

но тока если добавить где можно пробелы, то получится то, что я хотел:
\s*(insert\s+into)\s+
((?:\w+\.)?(?:\w+))\s*
(\(\s*(?:\w+\s*(?:,\s*\w+\s*)*)+\s*\))?\s*
(values)\s*
(\(\s*(?:[':\w+\d+]\s*(?:,\s*[':\w+\d+]\s*)*)+\))\s*
(?:(where)\s+([='\s\d\w:\(\)\.,']+?))?\s*(;)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам