Unashamedly asking for homework help: regex gurus needed

KingNothing

Diamond Member
Apr 6, 2002
7,141
1
0
You are given the following alphabet: {a,b,c,d}

Write a regular expression describing the set of all identifiers (i.e., strings) having at most 2 occurrences of the letter c. For example, the identifier "abbcdaac" would belong to this set, but the identifier "aabcdaacc" would not.

 

KingNothing

Diamond Member
Apr 6, 2002
7,141
1
0
Ok...examples are definitely correct this time, and your regexp is wrong because it matched a string with more than two c's in it.
 

manly

Lifer
Jan 25, 2000
11,332
2,352
136
Originally posted by: KingNothing
Ok...examples are definitely correct this time, and your regexp is wrong because it matched a string with more than two c's in it.
And how does my regexp do that?
 

mattlear

Senior member
Jun 2, 2000
349
0
76
Originally posted by: manly
[abd]*c?[abd]*c?[abd]*

It's been a while since I've done/used regular expressions, but I believe the above is correct.

It's basically saying:

[abd]* = 0 to infinte combinations of a, b, and/or d followed by
c? = 0 or 1 occurance of the letter c followed by
[abd]* = (same as first one)
c? = same as second followed by
[abd]*

That would, in effect, give all strings from the set {a,b,c,d} where c occurs at most 2 times in the string (but not limited to c occuring once or not at all)

-Matt
 

KingNothing

Diamond Member
Apr 6, 2002
7,141
1
0
Originally posted by: manly
Originally posted by: KingNothing
Ok...examples are definitely correct this time, and your regexp is wrong because it matched a string with more than two c's in it.
And how does my regexp do that?

$ cat filelist
aabcdaacc
aabdccdaf
abacabacabac
abaccc
abbcdaac
file
filelist

$ egrep "[abd]*c?[abd]*c?[abd]*" filelist
aabcdaacc
aabdccdaf
abacabacabac
abaccc
abbcdaac
file
filelist

$ egrep "[abcd]+" filelist
aabcdaacc
aabdccdaf
abacabacabac
abaccc
abbcdaac

If there's something wrong with my testing method, let me know.
 

notfred

Lifer
Feb 12, 2001
38,241
4
0
What regex metacharacters are you allowed to use? In my comp. theory class we were only allowed to use *, +, ( and ). (+ was for or, as opposed to perl using | for or)

Anyway, an expression that matches at most two 'c's?

I'm using perl regexes here because they're a lot shorter than ones with abbreviated metacharacter sets, but you should be able to translate easily enough.

[^c]*c?[^c]*c?[^c]*

And since you suck at grep, I've edited it already so you don't tell me it's wrong like you did with manly's identical and also correct regex.

edited version: ^[^c]*c?[^c]*c?[^c]*$

Note that grep seems to choke on the trailing $ if you're using tcsh. Also, Of course you're getting it to match strings that end with multiple 'c's cause you don't know how grep works. It matches any portion of the string if you don't include the ^ and $ anchors for the beginning and end of the line.
 

StormRider

Diamond Member
Mar 12, 2000
8,324
2
0
I think what egrep does is to print the entire line if there is a match to the pattern within the line. I think Manly is correct.


Originally posted by: KingNothing
Originally posted by: manly
Originally posted by: KingNothing
Ok...examples are definitely correct this time, and your regexp is wrong because it matched a string with more than two c's in it.
And how does my regexp do that?

$ cat filelist
aabcdaacc
aabdccdaf
abacabacabac
abaccc
abbcdaac
file
filelist

$ egrep "[abd]*c?[abd]*c?[abd]*" filelist
aabcdaacc
aabdccdaf
abacabacabac
abaccc
abbcdaac
file
filelist

$ egrep "[abcd]+" filelist
aabcdaacc
aabdccdaf
abacabacabac
abaccc
abbcdaac

If there's something wrong with my testing method, let me know.

 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |