| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Разобрать строку, как? |
| Автор: Elfet 26.8.2005, 13:34 |
| У меня есть строка вида: числоxбуква числоxбуква Ну и мне нужно получить все эти числа и буквы Добавлено @ 13:35 ЗЫ: Это в Общие вопросы по .NET |
| Автор: Competitor 26.8.2005, 17:16 |
| ну а что сели просто пробежаться по массиву, сопоставляя каждый символ строки с зараннее уготованным массивом цифр. |
| Автор: nerezus 26.8.2005, 17:56 |
| хм, чтобы не заводить новую тему: как в строке сделать замену участка? =) |
| Автор: Spawn™Production® 26.8.2005, 20:54 |
| nerezus, хм, Replace ("Исходный текст", "что найти", "на что заменить") Например Replace("123", "1", "4") = "423" |
| Автор: Bounz 26.8.2005, 23:46 | ||
| Elfet Вот тебе пример:
Используй пространство имен System.Text.RegularExpressions |
| Автор: Zdvig 19.9.2005, 16:15 |
| Думаю вопрос похожий, чтобы не создавать новую тему. Есть строка: "12345 тут текст произвольной длины" Как прочитать все что правее "12345"? |
| Автор: Bounz 19.9.2005, 18:19 | ||||
Если ты точно знаешь что у тебя есть строка "12345", то ты можешь сделать так:
|
| Автор: Дрон 19.9.2005, 18:51 | ||
| Zdvig Ну либо так как сказал Bounz, либо более общая задача: набор_цифр пробелы произвольный_текст Вот рег. выражение:
Добавлено @ 18:54 Регулярные выражения -- крутая штука В данном примере: \d+ означает одна или большее количество цифр \s+ означает один или большее количество пробелов (знаков табуляции и др. непечатных символов) .* означает любое количество любых символов |
| Автор: Zdvig 19.9.2005, 20:14 |
| Дрон Спасибо!! |
| Автор: lioness 24.8.2006, 11:02 | ||
| Ну ПОЧЕМУ Жрёть все, что ни дашь. Можно: буквы и цифры, пробелы. Знаки тоже можно, но кроме тех, которые я задала, как неразрешенные.
Самый распростой пример ! Может нужно другой конструктор взять??? |
| Автор: ivashkanet 24.8.2006, 11:14 |
lioness, имхо у тя что-то с самим регулярным выражением. У тебя оно читается так: любое количесво непробельных символов, потом любое количесво пробельных (белых-пробелов) символов, а потом один не "!§$%&/()=?#'+*" символ. Поэтому он не найдет, например, такую строку: "$%" P.S. А вообще напиши, что ты хочешь найти и какую строку проверяешь Добавлено @ 11:16 А хотя нет. Должен найти В общем: |
| Автор: lioness 24.8.2006, 11:25 |
| Вот, например: "Gn BW Kraftwerke AG Kernkraftwerk Philippsburg BRD012 KK-BWR" Вобщем, любые буквы и цифры, знаки тоже могут быть. Я бы хотела НЕ принимать знаки очевидно ошибочные. А я задала только для трех знаков??? Но у меня сглатывает сейчас любое количество... И любые знаки ... |
| Автор: ivashkanet 24.8.2006, 11:30 |
| lioness, так она у тебя соответствует выражению, так как не содержит знаки А это, в принципе, у тебя единственное строгрое условие ("\w*\s*" строгим считаться не может) |
| Автор: lioness 24.8.2006, 11:42 | ||
| Не, строку я привела, как пример, что там ИМЕЕТ ПРАВО быть. Так глотает он у меня Л-Ю-Б-Ы-Е. В том числе и те, которые в квадратных скобках поставила Вот так исправить попробовала
Я думала, вообще запретила знаки воодить. Так он и тут все слопал. |
| Автор: mr.DUDA 24.8.2006, 11:52 |
| FYI, для экспериментов с регулярными выражениями удобно пользоваться тулзами типа Regulator .NET или Regex Coach. |
| Автор: lioness 24.8.2006, 11:54 | ||
| Вообще-то я не FYI Добавлено @ 12:06 ВОТ ТАК СРАБОТАЛО !!
Правда, я не хотела сильно ограничивать в знаках... Но сработало только со строгим соответствием ^..$ Как они там называются, позабыла Token, что ль ... |
| Автор: mr.DUDA 24.8.2006, 12:29 |
FYI = For Your Information В гугле можно было найти: http://weitz.de/files/regex-coach.exe http://sourceforge.net/project/showfiles.php?group_id=105210 Вводишь регулярное выражение, строку для разбора или путь к файлу - тулза выводит тебе инфу о регекспе (что и как оно делает), и результат разбора строки. |
| Автор: lioness 24.8.2006, 13:45 | ||
Я знаю только немецкое "zur Kenntnisse" "Regex Coach" попробовала (спасибА, забавно). Так вот там отсеивает, что надо и правильно. Переношу строку в код СиШарпа - там НЕ работает. Глотает опять всё подряд. Только со значкАми ^...$ взбодряется и начинает ругать неправильные символы. ВотЪ. Нигде вроде не напИсано, что их надо обязательно ставить... Вот ещё разница: "Regex Coach" нормально реагирует на ([A-Z])*\s+=?\s+([0-9])*\s+([A-Z])*, в СиШарпе нужно написАть:([A-Z]*)\s+=?\s+(([0-9])*)\s+([A-Z])* иначе не пропускает компилятор. У меня Visual C# 2005 |
| Автор: mr.DUDA 24.8.2006, 14:19 |
А может просто RegexOptions.Singleline надо передавать в конструктор Regex ? |
| Автор: lioness 24.8.2006, 15:57 |
| Не наюююю ... Попробовала - не помогает |