| Author | Message | 
		 
		| Martin 
 
  
 
 
 | 
			
				|  Posted: Sat May 28, 2005 2:30 pm    Post subject: Regular Expression to match alternating characters |  |   
				| 
 |  
				| This is part of my CS assignment, so I'm looking more for hints than an actual solution. I have to write a regular expression to do the following: 
 All lines in which every other letter is a lowercase a and which contains at least one lowercase a. These a's may be separated by any character (including another a) and the lines may begin with an a or any other character. Thus the lines "a", "aWay", "aha aha" and "Banana" are acceptable, but the lines "b", and "aloha" are not.
 |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
		 
		| Sponsor Sponsor
 
  
   |  | 
	 
		|  | 
				 
		| wtd 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 3:06 pm    Post subject: (No subject) |  |   
				| 
 |  
				| It's pretty easy. 
 Match an "a" or "A" one time.
 
 
 
 Then match any character exactly once or zero times.
 
 
 
 Now, make this a non-matching group.  Now match that group one or more times.
 |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| Martin 
 
  
 
 
 | 
			
				|  Posted: Sat May 28, 2005 4:22 pm    Post subject: (No subject) |  |   
				| 
 |  
				| Thanks   
 Yeah...that was pretty easy.
 |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| wtd 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 5:03 pm    Post subject: (No subject) |  |   
				| 
 |  
				| For what it's worth, my solution looks like: 
 
 |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| rizzix 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 5:12 pm    Post subject: (No subject) |  |   
				| 
 |  
				| that won't work... cuz that basically means it has to start with an 'a' |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| wtd 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 5:31 pm    Post subject: (No subject) |  |   
				| 
 |  
				| The problem description indicated that it does have to start with either an 'a' or 'A'.  The one thing I didn't take into account is the string having to contain at least one lowercase 'a'.  In this event I'd just do something like: 
 
 	  | code: |  	  | success = str =~ /^(?:a.?)+$/i && str =~ /a/ | 
 |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| rizzix 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 5:41 pm    Post subject: (No subject) |  |   
				| 
 |  
				| i think it says it should start with 'a|A' or any other character... |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| wtd 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 5:48 pm    Post subject: (No subject) |  |   
				| 
 |  
				| How about: 
 
 |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
		 
		| Sponsor Sponsor
 
  
   |  | 
	 
		|  | 
				 
		| rizzix 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 5:53 pm    Post subject: (No subject) |  |   
				| 
 |  
				| that means it has to end with an 'a|A', it will not match "aWay" |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| GlobeTrotter 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 5:55 pm    Post subject: (No subject) |  |   
				| 
 |  
				| What kind of code is this stuff?  I'm pretty confused. |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| wtd 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 5:59 pm    Post subject: (No subject) |  |   
				| 
 |  
				| rizzix wrote: that means it has to end with an 'a|A', it will not match "aWay" 
 Hmmm...
 
 
 |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| wtd 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 6:00 pm    Post subject: (No subject) |  |   
				| 
 |  
				| GlobeTrotter wrote: What kind of code is this stuff?  I'm pretty confused. 
 We're talking in regular expressions.
 
 What are regular expressions?
 
 There are many more tutorials like that one.
 |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| rizzix 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 6:07 pm    Post subject: (No subject) |  |   
				| 
 |  
				| wtd wrote: rizzix wrote: that means it has to end with an 'a|A', it will not match "aWay" 
Hmmm...
 
 that means it will match "b" which is wrong.
  |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| wtd 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 6:31 pm    Post subject: (No subject) |  |   
				| 
 |  
				| Ok smartypants, let's see your answer.  |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		| rizzix 
 
 
 
 
 | 
			
				|  Posted: Sat May 28, 2005 6:36 pm    Post subject: (No subject) |  |   
				| 
 |  
				| 	  | PerlRegex: |  	  | /^(?:.?a)+.?$/i | 
 
 still working on checking for at least one 'a'...
  |  
				|  |  | 
	 
		|  |  | 
	
 
		|  | 
				 
		|  |