Regular Expression issue

Hi; I created a program that needs to parse through multiple files
looking for users and groups. The users are listed with Employee
Number and Name and then Groups. The format is as follows:

C008658 Smith,John
C009525 Smith, Jane
C014259 Doe, Joe
C044888 Doe, Jack
*******************************************************(yes, the stars
are part of the file)

Outsource Access Control Sheet - Finance
Project Manager: Gilmore, Happy (0083234)
Date of first approval: Not approved
Date of last update: First Update
Accounts:
Type: LAN
Groups: Yes-Some-Type-of_Group

I need to capture, the employee ID, Name, and Groups. My Current
program is not working to well. Here is ONE of the version of the
program I am working on to get it to work.

Cemployee=Array.new
CemployeeID=Array.new
CemployeeName=Array.new
counter=0
CemployeeS=" "
File.open(“D:\Finance.txt”).each { |user|
while user.scan(/^[*]+/)

CemployeeID[counter]=user.scan(/^[C]\d+/)
puts CemployeeID[counter]
CemployeeName[counter]=user.scan(/\s\w+[,]\w+/)
puts CemployeeName[counter]
counter+=1

end

}

Instead of capturing each data element one at a time with separate
user.scan’s, it’s easier to create a match object from a single
regular expression that contains match groups. You can then access
the results of the match group by using $1, $2, etc.
Try this:

Cemployee=Array.new
CemployeeID=Array.new
CemployeeName=Array.new
counter=0
CemployeeS=" "
File.open(“D:\finance.txt”).each { |user|
m = /^([C]\d+)\s(\w+,\s?\w+)/.match(user)
if m
CemployeeID[counter]=$1
CemployeeName[counter]=$2
puts “Name: #{CemployeeName[counter]} ID:
#{CemployeeID[counter]}”
counter+=1
end
}

Hope that helps-

Brian