[Powered by Google Translate] [სემინარი თემაზე: მატრიცული შესაბამისი რეგულარული გამოსახულებების]
[ჯონ Mussman-ჰარვარდის უნივერსიტეტი]
[ეს არის CS50.-CS50.TV]
Okay. ასევე, მისასალმებელია ყველას. ეს არის CS50 2012.
ჩემი სახელი არის იოანე, და მე ვიქნები ვსაუბრობთ დღეისათვის რეგულარული გამოსახულებების შეყვანა.
რეგულარული გამოსახულებების, პირველ რიგში ინსტრუმენტი, არამედ ზოგჯერ
კოდის აქტიურად არსებითად ემთხვევა ნიმუშების და სიმებიანი.
ასე რომ, აქ არის ვებ კომიკური საწყისი xkcd.
ამ კომიკური არსებობს მკვლელობის საიდუმლო, სადაც მკვლელი აქვს
მოჰყვება ვინმე შვებულებაში, და გმირები უნდა
ძებნის მეშვეობით 200 მბ წერილებს ეძებს მისამართი.
ისინი დაახლოებით დათმობას, როცა ვინმე, ვინც იცის, რეგულარული გამოსახულებების -
სავარაუდოდ superhero - swoops ქვემოთ და წერს რაღაც კოდი
და წყვეტს მკვლელობის საიდუმლო.
ასე რომ, სავარაუდოდ, რომელიც იქნება ის, რასაც თქვენ მიეცეთ უნდა გააკეთოს
ამის შემდეგ სემინარს.
ჩვენ უბრალოდ აპირებს უზრუნველყოფს მოკლე შესავალი ენა
და გაძლევთ საკმარისი wherewithal წასვლა მას შემდეგ უფრო მეტი რესურსების საკუთარი.
>> ასე რომ, რეგულარული გამოსახულებების გამოიყურება ძირითადად მოსწონს ეს.
ეს არის რეგულარული გამოხატვის Ruby.
ეს არ არის საშინლად სხვადასხვა სხვადასხვა ენაზე.
ჩვენ გვყავს მხოლოდ დახრილ ხაზებს უნდა დაიწყოს და მარკ რეგულარული გამოხატვის Ruby.
და ეს არის რეგულარული გამოხატვის მოსაძებნად წელს ელექტრონულ მისამართზე ნიმუში.
ასე რომ, ჩვენ ვხედავთ, პირველ ცოტა გამოიყურება ნებისმიერი ალფანუმერული ხასიათი.
ეს იმიტომ, რომ მისამართით ხშირად უნდა დავიწყოთ ანბანურ ხასიათი.
და მაშინ რაიმე განსაკუთრებული ხასიათი მოჰყვა @ სიმბოლო.
შემდეგ კი იგივე, რაც დომენის სახელი.
და მაშინ შორის 2 და 4 ციფრები, მოსაძებნად. Com,. Net და ასე შემდეგ.
ასე რომ, კიდევ ერთი მაგალითი იმისა, თუ რეგულარული გამოსახულება.
ასე რომ, რეგულარული გამოსახულებების არიან ოქმები მოძიების patters ტექსტში.
ისინი შედარება, selections და გადაჯგუფების.
ასე რომ, მესამე მაგალითი მოძიებაში ყველა ტელეფონის ნომრები დამთავრებული 54 დირექტორია.
ასე რომ, სანამ დავით rips up CS50 დირექტორია, ჩვენ ვერ მოსაძებნად
ნიმუში, სადაც ჩვენ ფრჩხილებში შემდეგ 3 ნომერი შემდეგ დასრულდება ფრჩხილებში,
კიდევ 3 ნომრები, ტირე, 2 ნომრები, ხოლო შემდეგ 54.
და ეს იქნება არსებითად, თუ როგორ ამუშავება რეგულარული გამოსახულებანი მოძიება, რომ.
>> ასე რომ, არსებობს - ჩვენ გავაკეთეთ რამდენიმე რამ CS50, რომლებიც ცოტათი ჰგავდა
რეგულარული გამოსახულებების, ასე - მაგალითად - in dictionary.C ფაილი
for მართლწერის შემოწმება პრობლემა კომპლექტი შეგიძლიათ არ გამოიყენება fscanf
წაკითხვის შემდეგ სიტყვა ლექსიკონი.
და თქვენ ხედავთ პროცენტული 45s ეძებს სიმებიანი 45 სიმბოლოს.
ასე რომ, ეს გარკვეულწილად, როგორიცაა rudimentary რეგულარული გამოსახულება.
და შეგიძლიათ რაიმე 45 პერსონაჟი, რომელიც შეესაბამება კანონპროექტის არსებობს
და გააშუქა იმ up.
შემდეგ კი მეორე მაგალითი თავის უკანასკნელ ვებ პროგრამირების პრობლემა
მითითებული დისტრიბუტივისაა კოდი php ჩვენ რეალურად გვაქვს მარტივი რეგულარული გამოსახულება.
ეს ერთი უბრალოდ ეძებს შესამოწმებლად ვებ გვერდზე, რომელიც ჩაიარა
შეესაბამება ან გაიაროთ გამოსვლის რეგისტრაცია. PHP.
და მაშინ დაბრუნების ჭეშმარიტი ან ცრუ საფუძველზე, რომ რეგულარული გამოხატვის დამთხვევა.
>> ასე რომ, როდესაც იყენებთ რეგულარული გამოსახულება?
რა გინდა აქ დღეს?
ასე რომ თქვენ არ გსურთ გამოიყენოთ რეგულარული გამოსახულებანი, როდესაც რაღაც, რაც
არ სამუშაო თქვენთვის კიდევ უფრო ადვილად.
ასე რომ, XML და HTML რეალურად საკმაოდ სახიფათო
დაწერა რეგულარული გამოსახულებების, რადგან, როგორც ჩვენ ვხედავთ ცოტა.
ასე რომ, არსებობს სპეციალური parsers მათთვის, ენებზე.
თქვენ ასევე უნდა იყოს okay ერთად ვაჭრობის ღ და სიზუსტეს ხშირად.
თუ თქვენ ცდილობთ - ასე დავინახეთ რეგულარული გამოხატვის ელექტრონული ფოსტის მისამართი,
მაგრამ ამბობენ, რომ თქვენ სურდა კონკრეტული ელექტრონული ფოსტის მისამართი და თანდათან
რეგულარული გამოსახულება შეიძლება უფრო რთული გახდა უფრო ზუსტი.
ასე, რომ ეს იქნება პირველი სავაჭრო მოედანი.
თქვენ უნდა იყოს დარწმუნებული, რომ თქვენ okay მიღების ერთად რეგულარული გამოსახულება.
თუ იცით ზუსტად რას ეძებენ ეს შეიძლება უფრო გრძნობა
იმისათვის, რომ ამ დროს და წერა უფრო ეფექტური parser.
და ბოლოს, არსებობს ისტორიული საკითხი სისტემატურ
საქართველოს გამონათქვამების და ენებზე.
რეგულარული გამოსახულებების რეალურად ბევრად უფრო ძლიერი ვიდრე
რეგულარული გამოსახულებების პოსტი ამბობენ ფორმალური გაგებით.
>> ასე რომ, მე არ მინდა, რომ ასე შორს შევიდა ფორმალური თეორია,
მაგრამ ყველაზე ენებზე, რომ ჩვენ კოდექსის რეალურად არ არის რეგულარული.
და სწორედ ამიტომ რეგულარული გამოსახულებების ზოგჯერ არ განიხილება ყველა რომ უსაფრთხო.
ასე რომ, ძირითადად, არსებობს ხომსკი იერარქია ენებზე,
და რეგულარული გამოსახულებების არიან დაამყარონ გამოყენებით გაერთიანება, გაერთიანების,
და Kleene ვარსკვლავი ოპერაცია, რომ ჩვენ ვხედავთ რამდენიმე წუთში.
თუ თქვენ დაინტერესებული თეორიულად არსებობს საკმაოდ ბევრი იქ ქვეშ hood.
>> ასე მოკლე ისტორია - მხოლოდ კონტექსტიდან აქ - რეგულარული კომპლექტი გამოვიდა
1950 და შემდეგ გვქონდა მარტივი რედაქტორები, რომ
შემადგენლობაში რეგულარული გამოსახულებების - უბრალოდ ეძებს strings.
Grep - ეს ბრძანება ხაზი ინსტრუმენტი - ერთი პირველი
ძალიან პოპულარული ინსტრუმენტი, რომელიც მოიცავს რეგულარული გამოსახულებების in 1960.
In '80s, Perl აშენდა - არის პროგრამირების ენა, რომელიც
აერთიანებს რეგულარული გამოსახულებების ძალიან ორგანიზაციის.
შემდეგ კი უფრო მეტ გვქონდა Perl თავსებადი რეგულარული გამოსახულებანი
ოქმები ძირითადად სხვა ენებზე რომ გამოიყენოთ ბევრი იგივე სინტაქსი.
რა თქმა უნდა, ყველაზე მნიშვნელოვანი მოვლენა იყო 2008 წელს
სადაც პირველი ეროვნული რეგულარული გამოხატვის Day,
რაც მიმაჩნია, არის 1 ივნისს, თუ გსურთ აღსანიშნავად, რომ.
>> ისევ, უბრალოდ ცოტა მეტი თეორია აქ.
ასე რომ, არსებობს რამოდენიმე განსხვავებული გზა მშენებლობის რეგულარული გამოსახულებების შეყვანა.
ერთი მარტივი გზა აშენება გამოხატვის, რომ თქვენ აპირებთ
აწარმოებს სიმებიანი ინტერპრეტაცია - ძირითადად ავაშენოთ პატარა მინი პროგრამა, რომელიც
გაანალიზებენ ცალი სიმებიანი და ვნახოთ, "ო, ჯერ ეს შეესაბამება რეგულარული გამოსახულებანი თუ არა?"
და მაშინ აწარმოებს, რომ.
ასე რომ, თუ თქვენ გაქვთ ძალიან მცირე რეგულარული გამოსახულება, ეს, ალბათ
ყველაზე ეფექტურად უნდა გავაკეთოთ.
და მაშინ, თუ თქვენ - ერთი ვარიანტი შევინარჩუნოთ რეკონსტრუქცია
გამოხატვის როგორც თქვენ გადასვლა, და ეს არის სიმულაცია შესაძლებლობა.
და ეს ადრინდელი მცდელობის რეგულარული გამოსახულებანი ალგორითმები იყო
შედარებით მარტივი და შედარებით სწრაფი, მაგრამ არ აქვს ბევრი მოქნილობა.
ასე უნდა გავაკეთოთ ზოგიერთი რამ, რომ ჩვენ ვაპირებთ შევხედოთ
დღეს ჩვენ უნდა გაეკეთებინათ უფრო რთული რეგულარული გამოსახულებანი
შესრულება, რომლებიც პოტენციურად ბევრად ნელი, ისე, რომ ეს რაღაც გავითვალისწინოთ
არის ასევე რეგულარული გამოსახულებების უარის თქმის თავდასხმის ჯიშის
რომ გამოეყენებინათ პოტენციალი ამ უფრო ახალი განსახორციელებლად
რეგულარული გამოსახულებების, რომ გახდეს ძალიან რთული.
და ზუსტად იგივე გაგებით, რომ ჩვენ ვნახეთ ბუფერულ overflow თავდასხმები,
თქვენ გაქვთ თავდასხმები, რომ მუშაობა მიერ მიღების რეკურსიული მარყუჟების, რომ
overrun ტევადობის მეხსიერება.
სხვათა შორის Regexen არის ერთ ოფიციალურ მრავლობითების რეგულარული გამოხატვის
ანალოგიით, რათა oxen in ანგლო საქსური.
>> Okay, ასე Python ბიბლიოთეკა ბევრ თქვენგანს აქ პირი აქვს Macs,
ასე რომ თქვენ შეგიძლიათ რეალურად გაიყვანოს ეს ყველაფერი თქვენს ეკრანზე.
რეგულარული გამოსახულებების შენდება შევიდა Python.
ასე რომ, პითონი არის preloaded წლის Macs და ასევე ხელმისაწვდომია ბმულზე.
ასე რომ, თუ თვალს შეგიძლიათ პაუზის და დარწმუნდით აქვს Python
როგორც ჩვენ ითამაშოს გარშემო აქ.
არსებობს სახელმძღვანელო შემოსული, ასე რომ, თუ მაშინ უნდა აკრიფოთ Python თქვენს კომპიუტერში
ნახავთ, რომ ვერსიის წელს ტერმინალში.
ასე რომ, იმ პირობით ბმული სახელმძღვანელო ვერსია 2 Python, ასევე მოტყუებას ფურცელი.
არსებობს ვერსია 3 Python, მაგრამ თქვენი Mac სულაც არ
მოდის, რომ preloaded.
ასე რომ, არა საშინლად განსხვავებული.
Okay, ასე რომ ზოგიერთი საფუძვლებს გამოყენებით რეგულარული გამოსახულებების in Python.
>> ასე რომ, აქ მე ძალიან მარტივია გამოხატვის, ამიტომ მე Python იმპორტის რე
და შემდეგ მიიღო შედეგია re.search.
და ძებნა იღებს 2 არგუმენტები.
პირველი რეგულარული გამოსახულება, ხოლო მეორე მხარეს ტექსტი
ან სიმებიანი გსურთ ანალიზი.
და მერე იბეჭდება result.group.
ასე რომ, ეს არის 2 ძირითადი ფუნქციები ჩვენ ვაპირებთ ვხედავ დღეს
სწავლის შესახებ რეგულარული გამოსახულებების შეყვანა.
ასე რომ მხოლოდ ჩაშლის ამ რეგულარული გამოსახულებანი აქ
თ და შემდეგ \ w და ​​შემდეგ მ ასე \ w უბრალოდ იღებს ნებისმიერი ანბანურ ხასიათის იყო.
ასე რომ, აქ ჩვენ ვეძებთ "თ" და შემდეგ კი ანბანურ ხასიათი
და შემდეგ მ, ასე რომ აქ, რომელიც ემთხვევა ლორი
in, "აბრაამ ლინკოლნი და ლორი სენდვიჩები."
ეს არის შედეგი, რომ ჯგუფში.
კიდევ ერთი რამ, რომ ჩვენ შეგვიძლია გავაკეთოთ არის ჩვენი ადრე სიმები ტექსტი Python.
ასე რომ, ვფიქრობ, წავა წინ და გაიყვანოს რომ აქ.
Python იმპორტის ხელახლა.
და თუ მე უნდა გავაკეთოთ იგივე - ვთქვათ ტექსტი,
"აბრაამი," მოდით გასადიდებლად - იქ წასვლა.
ტექსტი არის "აბრაამ ჭამს ლორი".
კარგი, და შემდეგ გამოიწვევს = re.search.
და მაშინ ჩვენი გამოხატულება შეიძლება იყოს თ და შემდეგ გავაკეთებ dot მ.
ასე dot მხოლოდ იღებს ნებისმიერი ხასიათის, რომ არ არის ახალი ხაზი, მათ შორის ნომრები,
პროცენტული ნიშნები, რამე მსგავსი.
შემდეგ კი ტექსტი - boom - და შემდეგ result.group--yeah.
ასე რომ, ეს მხოლოდ როგორ უნდა განხორციელდეს ძირითადი ფუნქცია არ აქ.
თუ ჩვენ გვქონდა ტექსტი ბეჭედი, რომ - რომ გიჟები ტექსტი - შედის ამბობენ უამრავი უკან დახრილ ხაზებს
და სიმებიანი შიგნით და რაც შეიძლება გამოიყურებოდეს გაქცევის sequences,
მაშინ ჩვენ ალბათ გინდათ გამოიყენოთ ნედლეული ტექსტის შეყვანა რომ დავრწმუნდეთ, რომელიც დადასტურებულია.
და ეს მხოლოდ ჰგავს, რომ.
ასე რომ, თუ ჩვენ ეძებდნენ თითოეული მათგანი იქ არ უნდა პოულობენ არაფრის.
მაგრამ ეს არის, თუ როგორ განახორციელებენ მას, უბრალოდ ადრე სიმებიანი
რეგულარული გამოსახულება დააყენა წერილი რ.
>> Okay, მოდით us შენარჩუნებას აპირებს.
ყველა უფლება - ასე რომ მოდით შევხედოთ რამოდენიმე განმეორებითი ნიმუშების აქ.
ასე რომ, ერთი რამ, რომ გსურთ გააკეთოთ გავიმეორო რამ
როგორც თქვენ ეძებენ მეშვეობით ტექსტში.
ასე რომ, ამის გაკეთება მოჰყვა ნებისმიერი რაოდენობის ბ - თქვენ ბ *.
შემდეგ კი მთელი რიგი სხვა წესები ძალიან.
და შეგიძლიათ გამოიყურება ყველა ამ პროექტი; მე მხოლოდ აწარმოებს მეშვეობით ზოგიერთი
ყველაზე ხშირად იყენებენ მიიჩნიეს.
ასე რომ, ბ + არის მოჰყვა რაიმე N მეტია 0 of ბ.
ბ? არის მოჰყვა 0 ან 1 ბ.
ბ {N} არის მოჰყვა ნ ბ, შემდეგ კი ასე შემდეგ.
თუ თქვენ გაქვთ 2 ნომრები curly აფრთხილებს თქვენ მიუთითებს სპექტრი
რომ შესაძლოა დაემთხვას.
ასე რომ, ჩვენ უფრო ერთი წყვილის განმეორებითი ნიმუშების წუთში.
ასე რომ, 2 რამ უნდა გვახსოვდეს, როდესაც გამოყენებით ნიმუში შესაბამისი იარაღები აქ.
ასე რომ ვთქვათ, ჩვენ გვინდა, რომ შევხედოთ hm of "აბრაამ ლინკოლნი ხდის ლორი სენდვიჩები."
ასე, რომ შეიცვალა აბრაამ ლინკოლნი სახელზე აბრაამი.
ახლა ჩვენ ვეძებთ იმას, რაც დაბრუნდა მიერ ამ ძებნის ფუნქცია,
და ეს მხოლოდ ბრუნდება ham ამ შემთხვევაში.
გარდა ამისა, ეს, რომ ძიების უბრალოდ ბუნებრივად იღებს მარცხენა საუკეთესო მდგომ.
და ყველა რეგულარული გამოსახულებების, სანამ არ დააკონკრეტა წინააღმდეგ შემთხვევაში ყველაფერს გააკეთებს, რომ.
თუ გვინდოდა, რათა გამოინახოს არსებობს ფუნქცია, რომელიც - ყველა.
ასე რომ, შეიძლება მხოლოდ ჰგავს ყველა = re.findall ('h.m ", ტექსტი)
და შემდეგ all.group ().
ყველა აწარმოებს ორივე ლორი და ლორი; ამ შემთხვევაში ორივე სიმებისათვის აბრაამი ყოველ ლორი.
ასე რომ, კიდევ ერთი ვარიანტი.
>> დიდი. მეორე, რაც უნდა გვახსოვდეს არის ის, რომ რეგულარული გამოსახულებების მიიღოს ყველაზე დიდი ინტუიციურად.
მოდით შევხედოთ ამ მაგალითს.
ჩვენ რომ მარცხენა საუკეთესო ძიების აქ, და მერე სცადა უფრო დიდი ძებნის
გამოყენებით Kleene ვარსკვლავი ოპერატორი.
ასე რომ, "აბრაამ ლინკოლნი ხდის ლორი სენდვიჩები", და მე მხოლოდ დაუბრუნდა
მ შედეგად.
მიზეზი შეცდომა იყო ის, რომ მე შეეძლოთ ნებისმიერი რაოდენობის
თ იმიტომ, რომ მე არ დააკონკრეტა ფრანგულმა შორის სთ და მ.
მხოლოდ მაგალითად, რომელიც მ - მხოლოდ მაგალითები იქ მ ეს
და ნებისმიერი რაოდენობის თ-ს მხოლოდ სიმებიანი მ.
შემდეგ მე შევეცადე კიდევ ერთხელ, მე ვუთხარი, "Okay, მოდით მიიღოს ფაქტობრივი უდიდეს ჯგუფს აქ."
და მაშინ მე თ. * მ, ისე, რომ მხოლოდ დააბრუნებს ნებისმიერი რაოდენობის სიმბოლოებს შორის სთ და მ.
და თუ თქვენ მხოლოდ დაწყებული გარეთ და ფიქრობდა, "ო, ნორმალურია, კარგად ეს ხელს
მივიღებ მე ლორი, "ის რეალურად იღებს ყველაფერს სთ აბრაამ ლინკოლნი
ყველა გზა ბოლომდე ლორი.
ეს არის ხარბ, იგი ვერ ხედავს თ - ეს ყველაფერი დანარჩენი ტექსტი - მ,
და ეს არის ის, რაც ხდება შემოსული
ეს არის განსაკუთრებით აღმაშფოთებელი - ეს ფუნქცია ასევე შეგვიძლია
დააკონკრეტა, რომ ეს არ იქნება ხარბ გამოყენებით სხვა ფუნქციები.
მაგრამ ეს არის რაღაც ჩვენ უნდა გვახსოვდეს, განსაკუთრებით
როდესაც ჩვენ შევხედავთ HTML ტექსტი, რომელიც ერთი მიზეზით, რომ
რეგულარული გამოსახულებების არის რთული HTML.
იმიტომ, რომ თუ თქვენ გაქვთ HTML ღია tag და შემდეგ უამრავი პერსონალის შუა
და შემდეგ რამდენიმე სხვა HTML დაიხურა tag გაცილებით გვიან ჩართული,
თქვენ არ მხოლოდ მიაქვს ბევრი თქვენი HTML კოდი შესაძლებლობის შეცდომა.
>> ყველა უფლება - ასე უფრო სპეციალური სიმბოლოები, ისევე როგორც მრავალი სხვა ენებზე,
ჩვენ გაქცევა გამოყენებით ხაზი.
ასე რომ, ჩვენ შეგვიძლია გამოვიყენოთ dot დაზუსტება ნებისმიერი ხასიათის გარდა ახალი ხაზი.
ჩვენ შეგვიძლია გამოვიყენოთ გაქცევის w დაზუსტება ნებისმიერი ანბანურ ხასიათი.
და ანალოგიით გაქცევის დ ნებისმიერი რიცხვი - რიცხვითი ხასიათი.
ჩვენ შეგვიძლია დააკონკრეტა - ჩვენ შეგვიძლია გამოვიყენოთ ფრჩხილებში დაზუსტება დაკავშირებული გამოხატვის.
ასე რომ, ეს მიიღებდა, ბ, გ.
ჩვენ შეგვიძლია ასევე დააკონკრეტა ან ვარიანტები ან ან ბ.
მაგალითად - თუ ჩვენ ეძებდნენ მრავალი შესაძლებლობები
ფრჩხილებში ჩვენ შეგვიძლია გამოვიყენოთ ან ოპერატორის როგორც -
ამდენად, მოდით, დავუბრუნდეთ ამ მაგალითად აქ.
ახლა კი ავიღოთ - მოდით დავუბრუნდეთ ამ მაგალითად აქ და შემდეგ
მიიღოს ae - ასე რომ ეს უნდა დაუბრუნდეს - ვხვდები, ეს ჯერ კიდევ აბრაამი.
ასე რომ, ამ შემთხვევაში - ჩვენ ყველაფერი - დიდი.
ამდენად, მოდით, განაახლოს ტექსტი აქ.
"აბრაამი ჭამს ლორი ხოლო hemming მისი - ხოლო hemming". დიდი.
All. დიდი. და ჩვენ მივიღებთ ლორი, ლორი და hem.
მიუხედავად იმისა, რომ hemming - ხოლო humming მას - ხოლო humming to hem მას. დიდი.
იგივე.
ახლა ყველა დააბრუნებს ჯერ კიდევ ლორი, ლორი და hem გარეშე კრეფა up on hum ან მას.
დიდი - მერე რა, რომ გვინდოდა, რომ შევხედოთ ან რომ - ამიტომ ვერ გააკეთოს
მას ან - ჩვენ დავბრუნდებით რომ.
Okay - ასე - ყველა უფლება - ში პოზიციების თქვენ ასევე შეგიძლიათ caret ან დოლარის ნიშანი
დაზუსტება, რომ თქვენ ეძებს რაღაც ეტაპზე ან ბოლომდე მისაღებად.
ან დაწყების ან დასრულების შემდეგ სიტყვა.
სწორედ ერთი გზა გამოიყენოს ეს.
>> Okay - ასე რომ, მოდით, ითამაშოს გარშემო ოდნავ ტექსტს.
ვთქვათ ამ რიგის აქ - ეს განცხადება აქ.
ძალა რეგულარული გამოსახულებანი ისაა, რომ შეუძლია მიუთითოს ნიმუშების
არა მხოლოდ დაფიქსირდა სიმბოლოს.
მოდით, გააკეთოს - მოდით მოვუწოდებთ ამ ბლოკში.
მაშინ ჩვენ წაიკითხავს ყველა, რომ სისტემაში
და მაშინ აქვს - მოდით ყველა =, ამიტომ რა ზოგი რამ შეგვეძლო ძებნის აქ მომგებიანად?
ჩვენ შეგვეძლო ვეძებთ გამოხატვის ყური.
არ არის ძალიან საინტერესო. როგორ შესახებ, რომ? ჩვენ დავინახავთ, რა მოხდება.
მივეცი ეს პრობლემა.
ასე რომ ნებისმიერი რაოდენობის რამ ადრე რე და ყველა.
ასე რომ, უნდა დაუბრუნდეს ყველაფერი თავიდან მდე ყველა რე ალბათ რამოდენიმე ჯერ.
შემდეგ კი აქ ჩვენ გვაქვს ძალა რეგულარული გამოსახულებების, რომ მათ
შეუძლია მიუთითოს ნიმუშების არა მხოლოდ გმირები არიან.
ასე რომ, ყველა გზა მდე საბოლოო ხელახლა, ეს დაიწყო მარცხენა საუკეთესო და იყო ხარბ.
ვნახოთ - რა უნდა გვექნა ვეძებოთ.
ვხვდები ერთ რამეს თუ იყო დაინტერესებული ეძებს ნაცვალსახელები მან და იგი,
თქვენ შეიძლება შემოწმება იმისა ტოლია 0 ან 1
და გამოხატვის მას, და რომ, ალბათ, არ დაბრუნებას აპირებს -
oh, ვფიქრობ, ეს დაბრუნდა მას იმიტომ, რომ იქ ჩვენ შევხედავთ ძალა, რომ დღეს, აქ.
მოდით, შევეცადოთ განსაზღვრული რომ ეს უნდა მოვიდეს დაწყების რაღაც.
ვნახოთ, თუ ეს წვეთები მოედანი.
ასე რომ ჩვენ შეგვიძლია გავაკეთოთ fat და იქ ჩვენ არ მიიღოთ არაფერი, რადგან მას და მან
არ ხდება ამ ფრაზა.
დიდი. Okay - ასე რომ უკან კატა აქ.
ასე რომ კომპლექსის ნიმუში არის hurting ტვინი.
ასე რომ, ამიტომ გამოიყენოთ რეგულარული გამოსახულებების შეყვანა, რათა თავიდან ავიცილოთ ამ საკითხებზე.
>> ასე რომ, აქ არის უამრავი სხვა სასარგებლო რეჟიმები შეგიძლიათ ითამაშოთ გარშემო.
ჩვენ შევხედე ძებნის დღეს, მაგრამ თქვენ ასევე შეგიძლიათ მატჩი, გაყოფილი findall და ჯგუფები.
ასე რომ, სხვა მაგარი რამ რისი გაკეთებაც შეგიძლიათ რეგულარული გამოსახულებების გარდა მხოლოდ
ეძებს ნიმუშების ხდება ნიმუში და ჩატარების ყველა მატჩები -
მისი ცვლადის - და შემდეგ გამოყენებით იმ თქვენი კოდი მოგვიანებით.
ეს შეიძლება იყოს საკმაოდ სასარგებლო. სხვა რამ შეიძლება დათვლა.
ასე რომ ჩვენ შეგვიძლია რაოდენობის შემთხვევები რეგულარული გამოსახულებანი ნიმუში,
და ეს არის ის, რაც ჩვენ შეგვიძლია გამოვიყენოთ ჯგუფებს.
და სხვა რეჟიმები, ისევე ასევე შესაძლებელია.
ასე რომ, მინდა გაიგო ცოტა უფრო მეტი სხვა გზები შეგიძლიათ გამოიყენოთ რეგულარული გამოსახულებების შეყვანა.
>> ასე რომ, კიდევ ერთი მოწინავე განაცხადის არის საეჭვო დამთხვევა.
ასე რომ, თუ თქვენ ეძებს ტექსტი გამოხატვის, იულიუს კეისარი,
და ხედავთ ან Gaius Julius Caesar ან სახელი Julius Caesar სხვა ენებზე,
მაშინ, შესაძლოა, ასევე მინდა დაავალოს გარკვეული წონა იმ ღირებულებებს.
და თუ ახლოს არის საკმარისი შემთხვევაში - გადის გარკვეული ბარიერი - მაშინ გინდათ
შეძლებს მიიღოს Julius Caesar.
ასე რომ, არსებობს რამოდენიმე განსხვავებული შესრულება, რომ რამდენიმე სხვა ენებზე ისევე.
აქ არის რამოდენიმე სხვა ინსტრუმენტი, Regex Pal - მოსახერხებელი პატარა ოთახი ონლაინ
შესამოწმებლად, თუ თქვენი რეგულარული გამოსახულებების შედგება სწორად.
ასევე არსებობს standalone ინსტრუმენტი, რომელიც შეგიძლიათ აწარმოებს თქვენს კომპიუტერში
ისევე როგორც Ultra Pico და აგრეთვე მხოლოდ cookbooks.
ასე რომ, თუ თქვენ აკეთებთ პროექტი, რომელიც მოიცავს ტონა რეგულარული გამოსახულებების
ეს, ალბათ, წასასვლელი სცილდება დღეს.
და შემდეგ უბრალოდ გადმოგცეთ გრძნობა, როგორ საერთო ეს
არსებობს grep in Unix, Perl აქვს ჩაშენებული, და C არის PCRE for C.
და მაშინ ყველა ეს სხვა ენებზე ასევე აქვს რეგულარული გამოსახულებანი პაკეტები
რომ მოქმედებენ არსებითად იგივე სინტაქსი მივიღეთ გემოვნების დღეს.
PHP, Java, Ruby, და ასე შემდეგ.
>> Google კოდექსის ძებნა, ფაქტობრივად, აღსანიშნავია, რომ ეს არის ერთ ერთი
შედარებით ნაკლები განაცხადების out არსებობს, რომელიც საშუალებას აძლევს საჯარო წვდომის
მისი მონაცემთა ბაზის გამოყენებით რეგულარული გამოსახულებების შეყვანა.
ასე რომ, თუ გამორჩა Google კოდექსის ძებნა ნახავთ კოდი
თუ თქვენ ეძებს მაგალითად, თუ როგორ ფუნქცია შეიძლება იყოს გამოყენებული,
თქვენ შეგიძლიათ გამოიყენოთ რეგულარული გამოსახულებანი მოძიების, რომ ფუნქცია გამოიყენება ყველა სახის სხვადასხვა შემთხვევებში.
თქვენ შეიძლება ვეძებთ fwrite, და მაშინ შეიძლება ვეძებოთ დროშის ჩაწერის ან წაკითხული
თუ უნდოდა მაგალითია fwrite გამოიყენება იმ შემთხვევაში.
ასე რომ, იგივე იქ და აქ დამოწმება.
ეს იქნება ინტერნეტში ისევე, ასე აპირებს თავდამსხმელი, თუ
გსურთ შევხედოთ Python, grep, Perl - გსურთ მიიღოთ გარკვეული შთაგონების
ან, თუ გნებავთ უფრო at თეორია აქ კარგი jumping off ადგილებში.
დიდი მადლობა.
[CS50.TV]