Skip to content

Instantly share code, notes, and snippets.

@844196
Created January 7, 2016 03:12
Show Gist options
  • Select an option

  • Save 844196/d95a71414cc3489145ec to your computer and use it in GitHub Desktop.

Select an option

Save 844196/d95a71414cc3489145ec to your computer and use it in GitHub Desktop.
require 'pp'
regexp = /
\A
(?<faculty>a[khut])
(?<join_year>\d{1,2})
(?<department>\d{2})
(?<range_number>\d{3})
\z
/xi
legal_users = %w(
AK0911054
Ak0911054
aK0911054
ak0911054
)
illegal_users = %w(
AK911054
Ak911054
aK911054
ak911054
)
{:legal => legal_users, :illegal => illegal_users}.each do |cond, id|
puts "\n# #{cond}"
pp id.map {|user_id| user_id.match(regexp) }
end
# legal
[#<MatchData
"AK0911054"
faculty:"AK"
join_year:"09"
department:"11"
range_number:"054">,
#<MatchData
"Ak0911054"
faculty:"Ak"
join_year:"09"
department:"11"
range_number:"054">,
#<MatchData
"aK0911054"
faculty:"aK"
join_year:"09"
department:"11"
range_number:"054">,
#<MatchData
"ak0911054"
faculty:"ak"
join_year:"09"
department:"11"
range_number:"054">]
# illegal
[#<MatchData
"AK911054"
faculty:"AK"
join_year:"9"
department:"11"
range_number:"054">,
#<MatchData
"Ak911054"
faculty:"Ak"
join_year:"9"
department:"11"
range_number:"054">,
#<MatchData
"aK911054"
faculty:"aK"
join_year:"9"
department:"11"
range_number:"054">,
#<MatchData
"ak911054"
faculty:"ak"
join_year:"9"
department:"11"
range_number:"054">]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment