Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное выражение. 
:(
    Опции темы
KuMa1104
Дата 4.12.2009, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3




Добрый вечер.

Нужно составить регулярное выражение.

Это она видет.
Код

строка

      
А это уже нет.
Код

#строка


тоесть если слово начинаеться с # то его не видно.


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Heinzz
Дата 4.12.2009, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



у меня все видит
Код

string input = "#hello world!";
Console.Write(Regex.IsMatch(input, @"hello"));



--------------------
user posted image
PM MAIL   Вверх
KuMa1104
Дата 4.12.2009, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Heinzz  добрый вечер.

У меня тоже.
Цитата(Heinzz @  4.12.2009,  21:18 Найти цитируемый пост)
 все видит


А мне нужно чтоб 2ое видно не было.

Извеняюсь если запутал.


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Heinzz
Дата 4.12.2009, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



т.е нужно получить строку без слов начинающихся на #?


--------------------
user posted image
PM MAIL   Вверх
KuMa1104
Дата 4.12.2009, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Ну да. Но не совсем.

например.

Код


public bla-bla #define



вот отсюда мне нужно достать все слова не начинающиеся с символа '# ' т.е. обычные.

Нужно сделать рег. выр. которое  будет выдавать
Код

public
bla-bla


Добавлено через 49 секунд
Я ещё раз извеняюсь за путаницу.
Просто усталый очень.
Голова плохо варит.


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Heinzz
Дата 4.12.2009, 22:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Код

string input = "public bla-bla #define nothing #special";

            string reg = @"^[\w-]+|\s[\w-]+";

            MatchCollection coll = Regex.Matches(input, reg);
            foreach (Match m in coll)
            {
                Console.WriteLine(m.Index+"\t"+m);
            }


Добавлено через 1 минуту и 56 секунд
выдает все кроме define и special smile 

Это сообщение отредактировал(а) Heinzz - 4.12.2009, 22:51


--------------------
user posted image
PM MAIL   Вверх
KuMa1104
Дата 4.12.2009, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Вот спасибо. За это и + не жалко.

Если несложно поясни пожалуста как это работает а  то я не совсем понимаю.

Кстати может имееться ссылка на хорошую статью по этому поводу, был бы весьма презнателен.


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Heinzz
Дата 5.12.2009, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



про элементы:
\w == любая буква или цифра
-    == собственно "-"
\s  == пробел
^  == начало строки
|   == или
+  == одно или больше повторений того что перед ним указано
[]  == любой символ указанный внутри скобок

[\w-] = любая буква, цифра или "-"
[\w-]+ = значит должен быть один символ или больше
\s[\w-]+ = перед нашим словом должен быть пробел
^[\w-]+ = наше слово должно быть первым в строке
итог два предыдущих выражения объединенных оператором ИЛИ


зы
у Вас по всей видимости строка не одна входная, всмысле с "\n-ами"? тогда укажите это , а то работать не будет, 
Код

MatchCollection coll = Regex.Matches(input, reg,RegexOptions.Multiline);



--------------------
user posted image
PM MAIL   Вверх
KuMa1104
Дата 5.12.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Меня вот этот символ смушает особенно "|"

Я статью читал, там про него вообще ни слова.

Добавлено через 8 минут и 52 секунды
А почему получаеться что если в вырвжении

Код

 string reg = @"^[\w-]+|\s[\w-]+";


убрать "^"

то тогда оно выдает то что после "#"  ?

Добавлено через 12 минут и 3 секунды
А всё кажеться догнал)))


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
KuMa1104
Дата 5.12.2009, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Но похоже не доконца((
Если несложно поясните, лишнем это небудет точно!


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
KuMa1104
Дата 5.12.2009, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Й ещё один вопрос.
Надеюсь я не сильно вас достал..

вот выражение
Код

reg = @"[.]+"; //оно ничего не отобразит
reg = @"[^.]+";// отобразит всё, точная копия


анологично с
Код

reg = @"^[.]+";
reg = @"^[^.]+";


не понимаю, []  == любой символ указанный внутри скобок
.  == любой единичный символ


разве [.] не должно означать что в группу входят все единичный символы следовательно должен отображаться текст.
а [^.] наоборот.

Добавлено через 1 минуту и 23 секунды
а [^.] наоборот. т.е. в группу не входят все обычные символы, следовательно текст не отображаеться.

Добавлено через 6 минут и 53 секунды
и последнее, тоже мне не ясно.
Пожалуста обясните ктони будь.

строка, в начале ПРОБЕЛ.
Код

string =" bla"


два регулярных выражения.
1.
Код

 reg = @"\s|^\w+"; //оно ничего не выберет


2.
Код

reg = @".|^\w+";// выберет и пробел и слово


Почему /s не выберает пробел ??????????????????????????????????


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Heinzz
Дата 5.12.2009, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Цитата(KuMa1104 @  5.12.2009,  00:13 Найти цитируемый пост)

убрать "^"

то тогда оно выдает то что после "#"  ?


тогда получится что любое слово начинающееся не с буквы , а было любое слово начинающееся с начала строки буквой


Код

 reg = @"\s|^\w+"; //оно ничего не выберет


символ начала строки не в начале не действует, почему не знаю

Это сообщение отредактировал(а) Heinzz - 5.12.2009, 11:08


--------------------
user posted image
PM MAIL   Вверх
KuMa1104
Дата 5.12.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Кажеться с этим разобрался.
Вот так. Поправте если что то не точно.
Код

string reg = @"^[\w-]+|\s[\w-]+";


убираем ^
Код

string reg = @"[\w-]+|\s[\w-]+";


Цитата(Heinzz @  5.12.2009,  10:48 Найти цитируемый пост)
тогда получится что любое слово начинающееся не с буквы , а было любое слово начинающееся с начала строки буквой


[\w-]+  означает -  любое слово начинаюшееся с буквы или знака '-'
а  ^[\w-]+ что оно к томужу ещё следовать в начале строки.

в свою очередь
\s[\w-]+ означает что слово начинаеться с  пустого символа (обычно пробел и символ табуляции) а затем следует  любое количество  Словесных символов или знака '-'


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0722 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.