Форум Торонто - Torontovka.com
[Search] [Rules] [Register] [Login]
Forums » Archive » Visual Studio: regular expressions question 
Page: 1 2 [All]
Author Message
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 1:34:00 PM
 
народ, как в .NET Visual Studio найти все комбинации типа

"something one occurence of a set of chars something"

то есть если set of chars = $#@ строки типа
"lalala$lalaa" или "bbb#ccc" (кавычки - часть patternа)
Joined: 9/10/2002
Posts: 7576
Posted on Monday, February 7, 2005 1:48:00 PM
 
зачем?

для того чтобы: replace all occurances of "A" with "B" in a source code?

или для того чтобы: validate user input in GUI control?

или для чего?
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 1:51:00 PM
 
наити строки в коде.
Joined: 3/5/2002
Posts: 19784
Posted on Monday, February 7, 2005 1:53:00 PM
 
InStr

--
LONG LIVE ROCK-N-ROLL!
Joined: 2/19/2004
Posts: 17224
Posted on Monday, February 7, 2005 1:53:00 PM
 
в нормальных регекспах это шаблон типа [set of char]+, если я правильно понял

--
С пpиветом, KiM [Team Снусмумpик]
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 1:57:00 PM
 
instr ????

пока что я не понимаю как задать anything of any length
что бы сказать "anything[@#$]anything"
Joined: 1/8/2003
Posts: 2739
Posted on Monday, February 7, 2005 1:58:00 PM
 
не знаю как .НЕТ обычно " (double quote) нужно делать escape with \ (backslash) a ещё $ (dollar sign) это может быть как end of line.
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 2:02:00 PM
 
пока насколько я вижу double quote не надо ставить с escape
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 2:09:00 PM
 
got it.

".*[@#$].*"
Joined: 2/19/2004
Posts: 17224
Posted on Monday, February 7, 2005 2:46:00 PM
 
у тебя это не будет разве на 1 occurence?

--
С пpиветом, KiM [Team Снусмумpик]
Joined: 2/19/2004
Posts: 17224
Posted on Monday, February 7, 2005 2:46:00 PM
 
I mean 1 occurence of any char (not set)

--
С пpиветом, KiM [Team Снусмумpик]
Joined: 1/6/2004
Posts: 5076
Posted on Monday, February 7, 2005 2:53:00 PM
 
гыгыгы :)
Visual
Studio

grep forever
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 4:49:00 PM
 
ким

у тебя это не будет разве на 1 occurence?

да вроде нет, все нашлось
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 4:57:00 PM
 
"The first metacharacter for repeating things that we'll look at is *. * doesn't match the literal character "*"; instead, it specifies that the previous character can be matched zero or more times, instead of exactly once.

For example, ca*t will match "ct" (0 "a"characters), "cat" (1 "a"), "caaat" (3 "a"characters), and so forth."

"The final metacharacter in this section is .. It matches anything except a newline character , and there's an alternate mode (re.DOTALL) where it will match even a newline. "." is often used where you want to match ``any character''.
Joined: 2/19/2004
Posts: 17224
Posted on Monday, February 7, 2005 5:26:00 PM
 
* - это как раз 0 и более раз, поэтому тебе не подойдет (т.е. оно сработает и при отсутствии). + - это 1 и более. Т.е. на слове vodka шаблон .*[/q]*.* сработает, а .*[q]+.* - нет.

к слову я не очень понял постановку задачи. Есть набор символов и найти строки, где содержится хоть 1 из этих символов? или какая-то конкретно последовательность?

кстати, http://office.microsoft.com/en-us/assistance/HP030923241033.aspx



--
С пpиветом, KiM [Team Снусмумpик]

Edited by - ~kim~ on 2/7/2005 5:27:10 PM
Joined: 9/26/2004
Posts: 586
Posted on Monday, February 7, 2005 5:30:00 PM
 
напиши ^+.*[abc].*$+
Joined: 2/19/2004
Posts: 17224
Posted on Monday, February 7, 2005 6:45:00 PM
 
Does '+' in '^+' and '$+' have any sence?

--
С пpиветом, KiM [Team Снусмумpик]
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 6:52:00 PM
 
"* - это как раз 0 и более раз, поэтому тебе не подойдет (т.е. оно сработает и при отсутствии). + - это 1 и более. Т.е. на слове vodka шаблон .*[/q]*.* сработает, а .*[q]+.* - нет."

четто....что такое /q ? мне кажется что полюбому шаблон не сработает q - не присутствует.... к тому же [q] == q вырожденный случай [characters] ?

а вообще должна быть скобка, кавычка, zero or more chars (any) потом один из трех (@#$) потом опять zero or more chars (any) и опять кавычка и скобка.

то есть ["#"] пойдет и ["хуйня$"] и ["ебать@колотить"]
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 6:56:00 PM
 
мне именно * нужна так как меня не волнует есть ли там что-то между или вообще нет.

так что продолжаю стоять на своем:
\[".*[@#$].*"\]

скобка кавычка-что угодно и скока угодно-один из трех-что угодно и скока угодно-кавычка-скобка
Joined: 1/6/2004
Posts: 5076
Posted on Monday, February 7, 2005 7:15:00 PM
 
нет, читаю я вас и умиляюсь
thanks god что мне не надо с вижуал студио и виндой вообще работать... йопт, аж за людей обидно
ну почему у мелких с мягкими все по-своему через одно место
Joined: 3/12/2003
Posts: 7496
Posted on Monday, February 7, 2005 8:26:00 PM
 
Gnum в чем проблема-то ? Поиск в файлах с использованием regular expressions очень хорошая фича.

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

Edited by - YS on 2/7/2005 8:38:02 PM
Joined: 1/6/2004
Posts: 5076
Posted on Monday, February 7, 2005 8:56:00 PM
 
ну есть так есть
это хорошо, что теперь в виндоз тожы есть regexps
Joined: 2/7/2005
Posts: 1
Posted on Monday, February 7, 2005 10:47:00 PM
 
народ, как в .NET Visual Studio найти все комбинации типа

"something one occurence of a set of chars something"

то есть если set of chars = $#@ строки типа
"lalala$lalaa" или "bbb#ccc" (кавычки - часть patternа)


Что ты называешь "комбинации"? Что является для тебя результатом поиска по всему файлу? Сам факт наличия такой комбинации? Их количество? Номер строки первого совпадения?

И еще, увлекаясь конструкциями типа ".+" не забывай про greedy vs non-greedy patterns.

А вообще, жалко мне вас .Net девелоперы... регексами себя мучаете.

Поиск в файлах с использованием regular expressions очень хорошая фича.

Если размер файла превышает пару Кб, то эта "хорошая фича", может очень быстро превратится в плохую. Тем более, что файл должен быть наверное "текстовым"? А что .net девелоперы называют текстовым файлом? И как они это узнают? Хехе... тут тебя ожидает такая заморочка, что твой regex и рядом не стоял.
Joined: 2/19/2004
Posts: 17224
Posted on Monday, February 7, 2005 11:48:00 PM
 
а вообще должна быть скобка, кавычка, zero or more chars (any) потом один из трех (@#$) потом опять zero or more chars (any) и опять кавычка и скобка.

то есть ["#"] пойдет и ["хуйня$"] и ["ебать@колотить"]


Там кстати местный форум скобок понаставлял сам :))

В юниксе то, что ты написал, выглядит вот так:
\[".*[@,#,\$].*"\]

--
С пpиветом, KiM [Team Снусмумpик]
Page: 1 2 [All]
Forums » Archive » Visual Studio: regular expressions question 
Copyright © 2020 Torontovka.com, All rights reserved