Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

onefen avatar onefen 27 Точки

[Homework] Streams and Files

Колеги имам въпрос по Problem{3} Word Count:

Как мога да си напрвя RegEx който да е case sensitive. Ни ми хващаше главните и малките букви като еднакви и затова ги обърнах всички на малки.

line = line.ToLower();
words[i] = words[i].ToLower();

Където words[i] ми е дума от файла words.txt, а line ми е ред прочетен от файла text.txt. Но това все още не ми решава проблема с - пред думите. в смисъл is и -Is за RegEx не са едно и също нещо. Pattern-а ми е:

string pattern = @"\b" + words[i] + @"\b";

какво да му добавя за да не взема тия тирета за част от думата?

Тагове:
1
C# Advanced
onefen avatar onefen 27 Точки

Ето го кода който написах

http://pastebin.com/ADQAH1MF

В книгата "Intro Programmig ..." на страница 650 има указания за задачата. Там е задача 13. Но явно нвщо бъркам и не ми брои правилно. Може ли някой да ми каже защо.

MatchCollection matches = Regex.Matches(line, pattern, RegexOptions.IgnoreCase);

Това IgnoreCase нали трябва уж да ми направи pattern-а case insensitive

0
DHristoskov avatar DHristoskov 211 Точки

аз съм го направил така, ще се радвам да ти бъде от полза


                        string wordToMatch = reader.ReadLine();
                        string pattern = "\\b" + wordToMatch + "\\b";
                        int count = Regex.Matches(text, pattern, RegexOptions.IgnoreCase).Count;
                        dict.Add(wordToMatch, count);

1
onefen avatar onefen 27 Точки

А какво става ако във файла words.txt имаш по повече от една дума на ред?

Доколкото виждам ти четеш целия ред и в конкретния пример ще работи, но ако думите са една до друга разделени с интервал или с точки примерно ще работи ли? Аз мисля, че няма.

0
DHristoskov avatar DHristoskov 211 Точки

Write a program that reads a list of words from the file words.txt and finds how many times each of the words is contained in another file text.txt.Matching should be case - insensitive.

ами няма да работи то в условието никъде не е казано, да се съобразим с различно разделение на думите и аз се водя от него.

0
20/05/2015 23:35:23
onefen avatar onefen 27 Точки

Aма не и казано, че трябва да са по една дума на един ред. Аз за това исках да го направя да работи и ако си е нормален текстов файл, но нещо се омазаха нещата. Е ако не стане може и аз така да го направя ред по ред.

Другото което ми хрумва е да прочета целия файл words.txt да си го запиша в един стринг. И след това да си го разбия на масив от стингове по разделител интервал . - ! ? и нов ред. И тогава да проверявам със всеки един елемент на масива с RegEx дали го има в text.txt, но ми се струва, че ако файла е по-голям и искам да го прочета на веднъж доста ще се озори програмата.

0
20/05/2015 23:40:18
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.