Làm cách nào tôi có thể đối sánh một chuỗi với nhiều mẫu bằng cách sử dụng cụm từ thông dụng trong ruby.Khớp một chuỗi so với nhiều mẫu
Tôi đang cố gắng xem chuỗi có được bao gồm trong một mảng tiền tố hay không, điều này không có tác dụng nhưng tôi nghĩ nó thể hiện ít nhất những gì tôi đang cố gắng làm.
# example:
# prefixes.include?("Mrs. Kirsten Hess")
prefixes.include?(name) # should return true/false
prefixes = [
/Ms\.?/i,
/Miss/i,
/Mrs\.?/i,
/Mr\.?/i,
/Master/i,
/Rev\.?/i,
/Reverend/i,
/Fr\.?/i,
/Father/i,
/Dr\.?/i,
/Doctor/i,
/Atty\.?/i,
/Attorney/i,
/Prof\.?/i,
/Professor/i,
/Hon\.?/i,
/Honorable/i,
/Pres\.?/i,
/President/i,
/Gov\.?/i,
/Governor/i,
/Coach/i,
/Ofc\.?/i,
/Officer/i,
/Msgr\.?/i,
/Monsignor/i,
/Sr\.?/i,
/Sister\.?/i,
/Br\.?/i,
/Brother/i,
/Supt\.?/i,
/Superintendent/i,
/Rep\.?/i,
/Representative/i,
/Sen\.?/i,
/Senator/i,
/Amb\.?/i,
/Ambassador/i,
/Treas\.?/i,
/Treasurer/i,
/Sec\.?/i,
/Secretary/i,
/Pvt\.?/i,
/Private/i,
/Cpl\.?/i,
/Corporal/i,
/Sgt\.?/i,
/Sargent/i,
/Adm\.?/i,
/Administrative/i,
/Maj\.?/i,
/Major/i,
/Capt\.?/i,
/Captain/i,
/Cmdr\.?/i,
/Commander/i,
/Lt\.?/i,
/Lieutenant/i,
/^Lt Col\.?$/i,
/^Lieutenant Col$/i,
/Col\.?/i,
/Colonel/i,
/Gen\.?/i,
/General/i
]
+1 Nice one. Tôi sẽ dùng cái này. – Kyle
@Kyle: Cảm ơn. 'Regexp.union' có thể đẹp hơn rất nhiều so với việc cố gắng xây dựng một regex thay thế lớn bằng tay. –
Cảm ơn một lần nữa @muistooshort! –