Mae patrymau rheolaidd, neu "regular expressions" (regex), yn offeryn pwerus ar gyfer chwilio a thrawsnewid testun. Mae Ruby, fel iaith raglennu, yn cynnig cymorth ardderchog ar gyfer defnyddio patrymau rheolaidd. Yn yr erthygl hon, byddwn yn archwilio sut i ddefnyddio patrymau rheolaidd yn Ruby, gan gynnwys enghreifftiau, cyngor, a rhai awgrymiadau defnyddiol.
Mae patrymau rheolaidd yn gyfuniad o nodau sy'n cynrychioli testun. Mae'n bosib eu defnyddio i chwilio am, a thrawsnewid, testunau yn effeithiol. Mae patrymau rheolaidd yn ddefnyddiol ar gyfer:
Mae Ruby yn cynnig sawl dull o ddefnyddio patrymau rheolaidd. Mae'r dulliau hyn yn cynnwys y dullau =~
, match
, a scan
. Gadewch i ni edrych ar bob un ohonynt yn fanwl.
Mae'r dull =~
yn caniatáu i chi wirio a yw patrymau rheolaidd yn cyd-fynd â thestun. Mae'n dychwelyd y lleoliad cyntaf y gellir ei ddod, neu nil
os nad yw'n cyd-fynd.
testun = "Helo, byd!"
patrwm = /Helo/
if testun =~ patrwm
puts "Mae'r patrwm yn cyd-fynd!"
else
puts "Nid yw'r patrwm yn cyd-fynd."
end
Mae'r dull match
yn dychwelyd gwrthrych MatchData
os yw'r patrwm yn cyd-fynd â'r testun. Mae hyn yn caniatáu i chi gael mwy o wybodaeth am y gytundeb.
testun = "Helo, byd!"
patrwm = /Helo/
if (match = testun.match(patrwm))
puts "Mae'r patrwm yn cyd-fynd: #{match[0]}"
else
puts "Nid yw'r patrwm yn cyd-fynd."
end
Mae'r dull scan
yn dychwelyd pob gytundeb yn y testun. Mae hyn yn ddefnyddiol pan fyddwch am ddod o hyd i bob achos o'r patrwm.
testun = "Helo, byd! Helo, Ruby!"
patrwm = /Helo/
matches = testun.scan(patrwm)
puts "Cafwyd #{matches.length} gytundeb(au): #{matches.join(', ')}"
Mae patrymau rheolaidd yn cynnwys nodau arbennig sy'n cynrychioli gwahanol ddynodiadau. Dyma rai o'r nodau mwyaf cyffredin:
.
- Mae'n cynrychioli unrhyw nod.*
- Mae'n cynrychioli unrhyw nifer o nodau (gan gynnwys dim).+
- Mae'n cynrychioli un neu fwy o nodau.?
- Mae'n cynrychioli dim ond un nod neu ddim o gwbl.^
- Mae'n cynrychioli dechrau llinell.$
- Mae'n cynrychioli diwedd llinell.[ ]
- Mae'n cynrychioli unrhyw un o'r nodau a restrwyd.( )
- Mae'n cynrychioli grwpiau o nodau.Gadewch i ni edrych ar rai enghreifftiau mwy cymhleth o sut i ddefnyddio patrymau rheolaidd yn Ruby.
def valid_email?(email)
patrwm = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
return email =~ patrwm ? true : false
end
puts valid_email?("enw@enghraifft.com") # Dylai dychwelyd true
puts valid_email?("enw@enghraifft") # Dylai dychwelyd false
def valid_phone_number?(number)
patrwm = /^\+?[0-9]{1,3}?[-. ]?([0-9]{1,4}[-. ]?){1,3}[0-9]{1,4}$/
return number =~ patrwm ? true : false
end
puts valid_phone_number?("+44 20 7946 0958") # Dylai dychwelyd true
puts valid_phone_number?("12345") # Dylai dychwelyd false
Wrth ddefnyddio patrymau rheolaidd, mae rhai cyngor a awgrymiadau y gallech eu hystyried:
inspect
ar wrthrychau MatchData
i weld manylion am y gytundeb.Mae patrymau rheolaidd yn Ruby yn cynnig dull pwerus a hyblyg ar gyfer gweithio gyda thestun. Gyda'r wybodaeth a'r enghreifftiau a rennir yn yr erthygl hon, gobeithiwn y byddwch yn teimlo'n hyderus wrth ddefnyddio patrymau rheolaidd yn eich prosiectau Ruby. Peidiwch ag anghofio ymarfer a phrofi eich patrymau rheolaidd i ddod o hyd i'r dulliau sy'n gweithio orau i chi!
© 2024 RailsInsights. All rights reserved.