[Powered by Google Translate] [సెమినార్: రెగ్యులర్ వ్యక్తీకరణలు సరిపోలే సరళి] [జాన్ Mussman-హార్వర్డ్ విశ్వవిద్యాలయం] [ఈ CS50.-CS50.TV] సరే. బాగా, ప్రతి ఒక్కరూ స్వాగతం. ఈ CS50 2012. నా పేరు జాన్, మరియు నేను సాధారణ వ్యక్తీకరణలను ఈరోజు మాట్లాడటం ఉంటుంది. సాధారణ వ్యక్తీకరణలను ప్రధానంగా ఒక సాధనం, కానీ కొన్నిసార్లు ఉపయోగిస్తారు కోడ్ లో చురుకుగా తప్పనిసరిగా నమూనాలను మరియు తీగలను మ్యాచ్ కు. ఇక్కడ xkcd నుండి ఒక వెబ్ కామిక్. ఈ కామిక్ లో హంతకుడు కలిగి ఉన్న ఒక హత్య మిస్టరీ ఉంది సెలవులో ఎవరైనా తరువాత, మరియు ప్రధాన పాత్రధారులు కలిగి ఒక చిరునామా కోసం చూస్తున్న ఇమెయిల్స్ 200 మెగాబైట్ల ద్వారా శోధించవచ్చు. మరియు వారు సాధారణ వ్యక్తీకరణలను తెలిసిన ఒకరు అప్ ఇస్తాయి చేయబోతున్నారు - బహుశా ఒక సూపర్ హీరో - swoops డౌన్ మరియు కొన్ని కోడ్ వ్రాస్తూ మరియు మర్డర్ మిస్టరీ ఛేదిస్తాడు. సో బహుశా మీరు చేయవలసినదిగా అధికారం ఉంటుంది ఏదో ఉంటుంది ఈ సమావేశంలో తర్వాత. మేము కేవలం భాష ఒక సంక్షిప్త పరిచయం అందించడానికి వెళ్తున్నారు మరియు మీరు మీ స్వంత న ఎక్కువ వనరులను తరువాత వెళ్ళడానికి తగినంత wherewithal ఇవ్వాలని. సో సాధారణ వ్యక్తీకరణలను ఈ వంటి basically చూడండి. ఈ రూబీ లో ఒక సాధారణ వ్యక్తీకరణ. ఇది భాషల్లో భయంకరమైన తేడా లేదు. మేము రూబీ లో సాధారణ వ్యక్తీకరణకు ప్రారంభం మరియు గుర్తించడానికి కేవలం శ్లాష్లు కలిగి. మరియు ఈ ఇమెయిల్ చిరునామా నమూనాలో కోసం చూడండి ఒక సాధారణ వ్యక్తీకరణ. కాబట్టి మేము మొదటి బిట్ లో న్యూమెరిక్ పాత్ర కోసం కనిపిస్తుంది చూడండి. ఇమెయిల్ చిరునామాలను తరచుగా ఒక అక్షరం తో ప్రారంభించడానికి ఎందుకంటే అంటే. మరియు ఏ ప్రత్యేక పాత్ర @ చిహ్నం తర్వాత. ఆపై డొమైన్ పేరు కోసం అదే విషయం. ఆపై 2 మధ్య మరియు 4 అక్షరాలు కాబట్టి నికర.,. Com చూడండి, మరియు. తద్వారా సాధారణ వ్యక్తీకరణకు మరొక ఉదాహరణ. సో సాధారణ వ్యక్తీకరణలను టెక్స్ట్ లో patters కనుగొనడానికి ప్రోటోకాల్లు. వారు పోలిక, ఎంపికలు, మరియు భర్తీ చేయండి. ఒక డైరెక్టరీ లో 54 తో ముగిసే అన్ని ఫోన్ నంబర్లు గుర్తించడం ఒక మూడవ ఉదాహరణకు సో. సో CS50 డైరెక్టరీ డేవిడ్ rips ముందు మేము అన్వేషణ కాలేదు మేము వక్ర ఉన్న ఒక నమూనా అప్పుడు 3 సంఖ్యలు తరువాత, కుండలీకరణములలో అంతం 3 సంఖ్యలు, ఒక డాష్, 2 సంఖ్యలు, మరియు అప్పుడు 54. మరియు మేము ఆ వెతుక్కోవడానికి సాధారణ వ్యక్తీకరణకు కూడా ఇచ్చారు ఎలా తప్పనిసరిగా ఉంటుంది. సో ఉన్నాయి - మేము CS50 లో కొన్ని విషయాలు చేసారు వంటి కొద్దిగా అని కాబట్టి సాధారణ వ్యక్తీకరణలను, - ఉదాహరణకు - dictionary.C ఫైలులో స్పెల్ చెక్ సమస్య సెట్ కోసం మీరు fscanf ఉపయోగించి ఉండవచ్చు నిఘంటువు నుండి ఒక పదం లో చదవడానికి. మరియు మీరు శాతం 45s 45 అక్షరాల స్ట్రింగ్ కోసం చూస్తున్నానని చూడగలరు. కనుక ఇది మూలాధార సాధారణ వ్యక్తీకరణకు వంటి కొంతవరకు ఉంది. మరియు మీరు అక్కడ బిల్లు సరిపోయే ఏ 45 అక్షరాలను కలిగి ఉండవచ్చు మరియు ఆ తీయటానికి. ఇటీవలి వెబ్ ప్రోగ్రామింగ్ సమస్యకు మరియు తరువాత రెండవ ఉదాహరణ php కోసం distro కోడ్ లో సెట్ మేము నిజానికి ఒక సాధారణ సాధారణ వ్యక్తీకరణకు లేదు. మరియు ఈ ఒక కేవలం కేవలం వెబ్ పేజీ లో ఆమోదించింది అని తనిఖీ చూస్తున్నానని గాని లాగిన్ సరిపోలే లేదా నమోదు లాగ్అవుట్. PHP. మరియు ఆ సాధారణ వ్యక్తీకరణకు మ్యాచింగ్ ఆధారంగా నిజమైన లేదా తప్పుడు తిరిగి. సో మీరు సాధారణ వ్యక్తీకరణకు ఉపయోగించగలను? ఎందుకు మీరు ఇక్కడ నేడు? ఆ ఏదో కనుక మీరు సాధారణ వ్యక్తీకరణకు ఉపయోగించడానికి వద్దు మరింత సులభంగా మీరు కోసం పని చేస్తుంది. సో XML మరియు HTML నిజానికి అందంగా తంత్రమైన ఉన్నాయి మేము కొంత చూస్తారు వంటి కోసం సాధారణ వ్యక్తీకరణలను వ్రాయడానికి. సో ఆ భాషల ప్రత్యేక పదనిరూపణలచే ఉన్నాయి. మీరు కూడా తరచుగా వాణిజ్య ఆసక్తి మరియు ఖచ్చితత్వంతో ఓకే ఉండాలి. మీరు ప్రయత్నిస్తుంటే - కాబట్టి మేము, ఒక ఇమెయిల్ చిరునామా కోసం ఒక సాధారణ వ్యక్తీకరణ చూసింది కానీ మీరు ఒక నిర్దిష్ట ఇమెయిల్ చిరునామా కావలెను మరియు క్రమంగా చెప్పటానికి మరింత ఖచ్చితమైన మారింది సాధారణ వ్యక్తీకరణకు మరింత క్లిష్టమైనదని ఉండవచ్చు. తద్వారా ఒక వాణిజ్యం ఉంటుంది. మీరు ఓకే సాధారణ వ్యక్తీకరణకు తీసేందుకు ఖచ్చితంగా ఉండాలి. మీరు కోసం చూస్తున్నాయి సరిగ్గా ఏమి ఉంటే అది మరింత అర్ధవంతం ఉండవచ్చు సమయం చాలు మరియు అత్యంత సమర్థవంతమైన పార్సర్ వ్రాయడానికి. చివరకు క్రమ ఒక చారిత్రక సమస్య ఉంది వ్యక్తీకరణలు మరియు భాషల. రెగ్యులర్ వ్యక్తీకరణలు వాస్తవానికి చాలా శక్తివంతమైన కంటే ప్రతి సాధారణ వ్యక్తీకరణలను ఒక లాంఛనప్రాయ భావనలో చెబుతారు. నేను, క్రమబద్ధ సిద్ధాంతంలో లోకి చాలా దూరం వెళ్ళి వద్దు కానీ చాలా భాషలు మేము నిజానికి లో కోడ్ సాధారణ లేని. సాధారణ వ్యక్తీకరణలను కొన్నిసార్లు ఆ సురక్షితమైనదిగా పరిగణించబడటం లేదు ఎందుకు ఈ ఉంది. సో ప్రధానంగా భాషలకు ఒక చోమ్స్కీ సోపానక్రమం ఉంది మరియు సాధారణ వ్యక్తీకరణలను యూనియన్, జోడింపు ఉపయోగించి నిర్మించడానికి ఉంటాయి మరియు మేము కొన్ని నిమిషాల్లో Kleene స్టార్ ఆపరేషన్ చూసే. మీరు ఆసక్తి ఉంటే సిద్ధాంతం లో హుడ్ కింద అక్కడ జరగబోతోంది చాలా చాలా. ఒక క్లుప్తమైన చరిత్ర కాబట్టి - కేవలం ఇక్కడ సందర్భానికి - సాధారణ సెట్లు అప్ వచ్చింది 1950 లో, ఆపై మేము సాధారణ సంపాదకులు కలిగి సాధారణ వ్యక్తీకరణలను విలీనం - కేవలం తీగలను కోసం శోధిస్తున్నారు. Grep - ఇది ఒక కమాండ్ లైన్ సాధనం - మొదటి ఒకటి 1960 లో సాధారణ వ్యక్తీకరణలను స్థాపించిన చాలా ప్రజాదరణ టూల్స్. 80 వ, పెర్ల్ నిర్మించారు - ఒక ప్రోగ్రామింగ్ భాష అని చాలా ప్రముఖంగా సాధారణ వ్యక్తీకరణలను కలిగి ఉంటుంది. ఆపై ఇటీవల మేము పెర్ల్ అనుకూలంగా సాధారణ వ్యక్తీకరణకు కలిగి ప్రధానంగా అదే సింటెక్స్ చాలా ఉపయోగించే ఇతర భాషలలో ప్రోటోకాల్లు. కోర్సు యొక్క అత్యంత ముఖ్యమైన సంఘటన 2008 లో జరిగింది మొదటి నేషనల్ సాధారణ వ్యక్తీకరణలను డే, ఉంది మీరు ఆ జరుపుకుంటారు అనుకుంటే ఇది నేను జూన్ 1 నమ్మకం. ఇక్కడ మళ్ళీ, కేవలం ఒక చిన్న బిట్ మరింత సిద్ధాంతం. సో సాధారణ వ్యక్తీకరణలను నిర్మించే ఒక జంట వివిధ మార్గాలు ఉన్నాయి. ఒక సాధారణ మార్గం మీరు వెళ్తున్నారు ఆ వ్యక్తీకరణ నిర్మించడానికి ఉంది అర్థం స్ట్రింగ్ అమలు - సాధారణంగా చిన్న ప్రోగ్రామ్ కొద్దిగా నిర్మించడానికి ఒక స్ట్రింగ్ యొక్క ముక్కలు విశ్లేషించడానికి మరియు చూస్తారు, "ఓహ్, ఈ సాధారణ వ్యక్తీకరణకు సరిపోయే లేదా లేదు?" మరియు ఆ రన్. మీరు చాలా చిన్న సాధారణ వ్యక్తీకరణకు కలిగి ఉంటే, ఈ బహుశా ఉంది దీన్ని అత్యంత ప్రభావవంతమైన మార్గం. ఆపై మీరు - మరొక ఎంపికను పునర్నిర్మించేందుకు ఉంచుకోవడం వ్యక్తీకరణ మీరు వెళ్ళి, మరియు ఆ అనుకరించేందుకు అవకాశం ఉంది. మరియు సాధారణ వ్యక్తీకరణకు అల్గోరిథంలు ఈ ప్రారంభ ప్రయత్నాలు ఉన్నాయి సులభమైన మరియు సాపేక్షంగా వేగంగా, కానీ వశ్యత చాలా లేదు. సో కొన్ని విషయాలను మేము చూడండి వెళుతున్న కూడా చేయాలని నేడు మేము మరింత క్లిష్టమైన సాధారణ వ్యక్తీకరణకు అనుకుంటున్న శక్తివంతమైన తక్కువ అమలు చేయడం; మనస్సులో భరించలేదని ఏదో తద్వారా దాడి అనేక ఒక సాధారణ వ్యక్తీకరణలను తిరస్కారం కూడా ఉంది ఈ కొత్త అమలు కోసం సంభావ్య దోపిడీ అని చాలా క్లిష్టమైన మారింది సాధారణ వ్యక్తీకరణలను. మరియు మేము బఫర్ ఓవర్ఫ్లో దాడులు చూసిన దాదాపు అదే అర్థంలో, మీరు ఆ పని ఆ పునరావృత ఉచ్చులు ద్వారా దాడులు కలిగి మెమరీ సామర్థ్యం పారిపోవడం. మరియు మార్గం ద్వారా Regexen సాధారణ వ్యక్తీకరణకు అధికారిక బహూవచనాలు ఒకటి ఆంగ్లో సాక్సాన్ లో ఎద్దులు సాదృశ్యం ద్వారా. సరే, అలా పైథాన్ లైబ్రరీ వ్యక్తి ఇక్కడ మీరు అనేక Macs కలిగి, కాబట్టి మీరు నిజంగానే మీ తెరపై ఈ పుల్ అప్ చేయవచ్చు. సాధారణ వ్యక్తీకరణలను పైథాన్ లోకి నిర్మించబడ్డాయి. అందువలన పైథాన్ ఈ లింక్ వద్ద Macs మరియు కూడా అందుబాటులో ఆన్లైన్ న preloaded ఉంది. మీరు చూస్తున్న ఉంటే మీరు విరామం మరియు మీరు పైథాన్ కలిగి నిర్ధారించుకోండి చేయవచ్చు మేము ఇక్కడ చుట్టూ ప్లే వంటి. మీరు కేవలం మీ కంప్యూటర్ లోకి పైథాన్ టైప్ అయితే ఒక మాన్యువల్ ఆన్లైన్, ఉంది మీరు వెర్షన్ టెర్మినల్ లో వస్తుంది చూస్తారు. నేను పైథాన్ యొక్క సంచిక 2 అలాగే ఒక మోసగాడు షీట్ కోసం మాన్యువల్ ఒక లింక్ను అందించలేదు. అక్కడ పైథాన్ యొక్క ఒక వెర్షన్ 3, కానీ మీ Mac అవసరం లేదు preloaded తో వస్తాయి. సో భయంకరమైన తేడా లేదు. సరే, అలా పైథాన్ లో సాధారణ వ్యక్తీకరణలను ఉపయోగించి కొన్ని ప్రాథమికాలు. ఇక్కడ నేను చాలా సులభమైన వ్యక్తీకరణగా దీనిని, కాబట్టి నేను పైథాన్ దిగుమతి తిరిగి చేసింది ఆపై re.search ఫలితంగా పట్టింది. మరియు శోధన 2 వాదనలు పడుతుంది. మొదటి సాధారణ వ్యక్తీకరణకు, మరియు రెండవ టెక్స్ట్ లేదా మీరు విశ్లేషించడానికి మీరు స్ట్రింగ్. ఆపై నేను result.group ముద్రించిన. సో ఈ మనం నేడు చూసే వెళ్తున్నారు 2 ప్రాథమిక విధులు సాధారణ వ్యక్తీకరణలను గురించి తెలుసుకోవడానికి. సో ఈ సాధారణ వ్యక్తీకరణకు ఇక్కడ డౌన్ బద్దలు h మరియు తరువాత \ w మరియు తరువాత m కాబట్టి \ w అక్కడే ఏ అక్షరం అంగీకరిస్తుంది. ఇక్కడ మేము మరొక అక్షరం ఒక "h" కోసం చూస్తున్న మరియు తరువాత ఉంటాయి ఆపై మీ, ఇక్కడ పంది మ్యాచ్ అని లో, "అబ్రహాం లింకన్ మరియు ham శాండ్విచ్లు." ఈ సమూహాన్ని ఫలితంగా. మేము చేయగల మరొక విషయం పైథాన్ లో టెక్స్ట్ మా ముందు తీగలను ఉపయోగిస్తారు. సో నేను ముందుకు వెళ్లి ఇక్కడ పుల్ అప్ చేస్తుంది అంచనా. పైథాన్ దిగుమతి తిరిగి. మరియు నేను ఇదే ఉంటే -, మాకు టెక్స్ట్ అని పిలవబడు "అబ్రహాం," మాకు జూమ్ వీలు - అక్కడ మేము వెళ్ళి. టెక్స్ట్ "అబ్రహాం ham తింటున్న.", ఉంది సరే, ఆపై = re.search ఫలితంగా. ఆపై మా వ్యక్తీకరణ h ఉంటుంది, మరియు నేను డాట్ m చేస్తాను. సో డాట్ కేవలం సంఖ్యలు ఒక కొత్త లైన్ కాదని ఏ పాత్ర పడుతుంది శాతం సంకేతాలు వలె ఏదైనా. ఆపై టెక్స్ట్ - విజృంభణ - ఆపై result.group-yeah. తద్వారా ఇక్కడ ప్రాథమిక కార్యాచరణను అమలు ఎంత ఉంది. విపరీత టెక్స్ట్ - - మేము ఒక టెక్స్ట్ రింగ్ కలిగి ఉంటే తిరిగి శ్లాష్లు మా చెప్పటానికి కూడా మరియు లోపల తీగలను మరియు ఎస్కేప్ సీక్వెన్స్ కనిపిస్తుంది అని విషయాలు, అప్పుడు మేము బహుశా అంగీకరించబడినది నిర్ధారించుకోండి ముడి టెక్స్ట్ ఇన్పుట్ ఉపయోగించాలనుకుంటున్నాను. మరియు ఆ కనిపించే. మేము అక్కడ వాటిని ప్రతి వెతుకుతున్న ఉంటే మేము ఏవీ ఉండకూడదు. కానీ అది అమలు ఎలా ఉంది; ముందు స్ట్రింగ్ సాధారణ వ్యక్తీకరణ మీరు లేఖ r చాలు. సరే, అలా మాకు కొనసాగించడాన్ని వీలు. కుడి అన్ని - మాకు ఇక్కడ ఒక జంట పునరావృత నమూనాలను చూద్దాం. సో మీరు చేయాలనుకుంటున్నారా ఒక విషయం విషయాలు పునరావృతం ఉంది మీరు టెక్స్ట్ ద్వారా శోధిస్తున్నారు వంటి. సో బి ఏ సంఖ్య ద్వారా ఒక తరువాత చేయాలని - మీరు అబ్ * చేయండి. ఆపై ఇతర నియమాలు వరుస చాలా ఉన్నాయి. మరియు మీరు ఈ అప్ అన్ని చూడవచ్చు; నేను కొన్ని ద్వారా అమలు చేస్తాము సాధారణంగా వాటిని ఉపయోగిస్తారు. సో AB + ఏ N బి 0 కంటే ఎక్కువ తరువాత. AB? ఒక బి 0 లేదా 1 తర్వాత. AB {N} ఒక బి N తరువాత, మరియు ఆ విధంగా ఉంది. మీరు గిరజాల కలుపులు 2 సంఖ్యలు కలిగి ఉంటే మీరు ఒక పరిధి పేర్కొనడం ఉంటాయి ఆ బహుశా సరిపోలే ఉంటుంది. కనుక మనం ఒక నిమిషంలో ఒక జంట పునరావృత నమూనాలను మరింత కనిపిస్తాయని. ఇక్కడ టూల్స్ సరిపోలే ఈ నమూనా ఉపయోగించి ఉన్నప్పుడు గుర్తుంచుకోండి 2 విషయాలు. మేము యొక్క HM చూడండి అనుకుంటున్నారా చెప్పడానికి, "అబ్రహాం లింకన్ ham శాండ్విచ్లు చేస్తుంది." నేను అబ్రహాం అబ్రహం లింకన్ యొక్క పేరు మార్చబడింది. మరియు ఇప్పుడు మేము, ఈ శోధన ఫంక్షన్ ద్వారా తిరిగి ఏమి కోసం చూస్తున్నాయి మరియు అది మాత్రమే ఈ విషయంలో హామ్ తిరిగి. మరియు సెర్చ్ కేవలం సహజంగా ఎడమ అత్యంత క్యూ పడుతుంది ఎందుకంటే ఆ చేస్తుంది. మరియు మీరు లేకపోతే పేర్కొనండి తప్ప అన్ని సాధారణ వ్యక్తీకరణలకు చేస్తాను. మేము అన్ని కనుగొనేందుకు కోరుకుంటే కోసం ఒక ఫంక్షన్ ఉంది - అన్ని చూడండి. సో అన్ని = re.findall ('h.m', టెక్స్ట్) లాగా అని ఆపై) (all.group. అన్ని హం మరియు ham రెండు ఉత్పత్తి; ప్రతి ham ఈ విషయంలో రెండు అబ్రహం లో తీగల యొక్క. తద్వారా మరొక ఎంపిక. గ్రేట్. గుర్తుంచుకోండి ఇతర విషయం సాధారణ వ్యక్తీకరణలను అకారణంగా అతిపెద్ద తీసుకోవాలని ఉంది. మాకు ఈ ఉదాహరణ చూద్దాం. మేము ఇక్కడ ఎడమ అత్యంత శోధన చేసింది, మరియు నేను ఒక పెద్ద శోధన ప్రయత్నం Kleene స్టార్ ఆపరేటర్లు ఉపయోగించి. సో కోసం, "అబ్రహాం లింకన్, హం శాండ్విచ్లు చేస్తుంది" మరియు నేను మాత్రమే తిరిగి వచ్చింది ఫలితంగా m. ఆ తప్పు కారణం నేను ఎన్ని తీసుకున్న చేయవచ్చు, నేను h మరియు m మధ్య వెళ్లాల్సి ఏదైనా పేర్కొనలేదు ఎందుకంటే h వార్తలు. m ఉందని అక్కడ మాత్రమే ఉదాహరణకు - అది మీ కలిసి మాత్రమే ఉదాహరణలు మరియు h యొక్క ఏ సంఖ్య కేవలం స్ట్రింగ్ m ఉన్నాయి. అప్పుడు నేను మళ్ళీ ప్రయత్నించాడు; నేను, అన్నారు "సరే, మాకు ఇక్కడ అసలు పెద్ద సమూహం పొందుటకు వీలు." ఆపై నేను h చేసింది. * M, కేవలం h మరియు m మధ్య ఏ అక్షరాల సంఖ్యను చూపించే విధంగా. మరియు మీరు కేవలం ప్రారంభమైన మరియు ఓకే, బాగా ఈ, ఓహ్ ", ఉంటుంది ఆలోచిస్తూ ఉంటే నాకు ham పొందుటకు, "నిజానికి అబ్రహం లింకన్ లో h నుండి ప్రతిదీ పడుతుంది ham చివర అన్ని మార్గం అప్. ఇది అత్యాశ చేస్తుంది h చూస్తాడు - అన్ని ఈ ఇతర టెక్స్ట్ - m, మరియు అది సైన్ పడుతుంది ఏమిటి ఈ ముఖ్యంగా అసాధారణ ఉంది - ఈ మేము కూడా చెయ్యవచ్చు ఒక లక్షణం ఇతర ఫంక్షన్లను ఉపయోగించి అత్యాశ కాదు కోసం పేర్కొనండి. కానీ ఈ మేము ముఖ్యంగా గుర్తుంచుకోండి ఉంటుంది ఏదో ఉంది HTML టెక్స్ట్ చూస్తున్నపుడు, ఇది ఒక కారణం అని సాధారణ వ్యక్తీకరణలను HTML కోసం కష్టం. ఎందుకంటే మీరు మధ్యలో ఒక HTML ఓపెన్ ట్యాగ్ మరియు తరువాత stuff మా ఉంటే మరియు తర్వాత ఇతర HTML, ప్రోగ్రామ్ తర్వాత ట్యాగ్ ముగించడమైనది మీరు కేవలం బహుశా పొరపాటున మీ HTML కోడ్ యొక్క ఒక చాలా అప్ తింటారు చేశారు. అన్ని కుడి - ఎక్కువ ప్రత్యేక అక్షరాలు, అనేక ఇతర భాషల వలె, మేము స్లాష్ ఉపయోగించి తప్పించుకొని. కనుక మనం ఒక కొత్త వాక్యం తప్ప ఏ పాత్ర తెలుపుటకు డాట్ ఉపయోగించవచ్చు. మేము ఏ అక్షరం తెలుపుటకు ఎస్కేప్ w ఉపయోగించవచ్చు. మరియు ఏ పూర్ణాంక కోసం సారూప్యత ఎస్కేప్ d ద్వారా - సంఖ్యా పాత్ర. మేము పేర్కొనవచ్చు - మేము సంబంధిత భావాలు తెలుపుటకు బ్రాకెట్లలో ఉపయోగించవచ్చు. సో ఈ ఒక, బి, లేదా సి ఒప్పుకుంటాం. మరియు మేము కూడా పేర్కొనండి లేదా ఒక బి గాని ఎంపికలను చేయవచ్చు. ఉదాహరణకు - మేము పలు అవకాశాలతో వెతుకుతున్న ఉంటే బ్రాకెట్లలో మేము లో లేదా ఆపరేటర్లు ఉపయోగించవచ్చు - మాకు ఇక్కడ ఈ ఉదాహరణ తిరిగి వెళ్ళి తెలపండి. అప్పుడు మాకు ఇక్కడ ఈ ఉదాహరణ తిరిగి వెళ్ళి తెలపండి, మరియు - మరియు ఇప్పుడు మాకు తీసుకుందాం AE పడుతుంది - ఈ తిరిగి ఉండాలి - నేను ఈ ఇప్పటికీ అబ్రహం చెబుతున్నారని ఊహిస్తున్నాను. ఈ సో - మేము అన్ని లేకపోతే - గొప్ప. సో మాకు ఇక్కడ టెక్స్ట్ అప్డేట్ వీలు. "తన హెమ్మింగ్ అయితే అబ్రహం ham తింటున్న -. హెమ్మింగ్ అయితే" గ్రేట్. అన్ని. గ్రేట్. ఇప్పుడు మేము ham, హం, మరియు HEM పొందుటకు. హెమ్మింగ్ అయితే - అతనికి హమ్మింగ్ అయితే - HEM అతనికి హమ్మింగ్ అయితే. గ్రేట్. అదే విషయం. ఇప్పుడు అన్ని హమ్ లేదా అతని మీద అప్ తయారయ్యారు లేకుండా ఇప్పటికీ కేవలం, హం హం, మరియు HEM తిరిగి. గ్రేట్ - మేము గాని చూపాలని కోరుకుంటాను కనుక దాన్ని - కాబట్టి మేము కూడా అలా అతనికి లేదా - మేము తిరిగి వస్తాయి. సరే - అలా - అన్ని కుడి - స్థానాల్లో మీరు కూడా caret లేదా డాలర్ సైన్ ఉపయోగించవచ్చు మీరు ప్రారంభంలో ఏదో లేదా ఒక స్ట్రింగ్ యొక్క ముగింపు కోసం చూస్తున్నారని తెలుపుటకు. లేదా ప్రారంభ లేదా ఒక పదం యొక్క చివరి. ఆ ఉపయోగించడానికి ఒక మార్గం. సరే - మాకు టెక్స్ట్ కొంచెం పెద్ద బ్లాక్ తో చుట్టూ ప్లే వీలు. మాకు ఇక్కడ ఈ వరుస అని పిలవబడు - ఈ ప్రకటన ఇక్కడ. సాధారణ వ్యక్తీకరణ యొక్క శక్తి వారు నమూనాలను పేర్కొనవచ్చు ఉంది కేవలం అక్షరాలు స్థిర. మాకు తయారు చేద్దాము - మాకు ఈ బ్లాక్ కాల్ చెయ్యనివ్వండి. అప్పుడు మేము సైన్ అన్ని చదువుతాను ఆపై ఒక కలిగి - మాకు అన్ని = చేయడానికి వీలు; మేము లాభదాయకంగా ఇక్కడ అన్వేషణ కాలేదు కొన్ని విషయాలు అలా ఏమిటి? మేము వ్యక్తీకరణ చెవిలో కనిపించాలి. కాదు చాలా ఆసక్తికరమైన. ఎలా గురించి? మేము ఏమి చూస్తారు. నేను ఒక సమస్య ఇచ్చింది. సో Re మరియు అన్ని ముందు విషయాలు ఏ సంఖ్య. తద్వారా ప్రారంభం నుంచి అన్నింటి తిరిగి ఒక జంట సార్లు ప్రతిదీ తిరిగి ఉండాలి. మరియు ఇక్కడ మేము సాధారణ వ్యక్తీకరణలు శక్తి కలిగి వారు నమూనాలను పేర్కొనవచ్చు ఇక్కడ అక్షరాలు మాత్రమే. సో ఫైనల్ తిరిగి అన్ని మార్గం, ఇది ఎడమ అత్యంత ప్రారంభించండి మరియు అత్యాశ ఉంది. ఇప్పుడు చూద్దాం - మేము ఏమి కనిపించాలి. మీరు పదాలు కోసం చూస్తున్న ఆసక్తి ఉంటే నేను ఒక విషయం అంచనా ఆమె మరియు అతను, మీరు s 0 లేదా 1 కు సమానమని కోసం తనిఖీ కాలేదు మరియు వ్యక్తీకరణ అతను, మరియు ఆ బహుశా తిరిగి వెళ్ళడం లేదు - ఓహ్, నేను అక్కడ మేము ఇక్కడ, శక్తి, ఆ రోజు వద్ద చూస్తున్నాయి ఎందుకంటే అతను తిరిగి అంచనా. మాకు ఈ ఏదో ప్రారంభంలో వచ్చిన కలిగి పేర్కొనడం ప్రయత్నించండి లెట్. ఆఫ్ పడిపోతుంది ఉంటే ఇప్పుడు చూద్దాం. కాబట్టి మేము కొవ్వు చేయవచ్చు, మరియు అక్కడ మేము ఏదైనా పొందలేము ఎందుకంటే ఆమె మరియు అతను ఈ పదబంధం ఏర్పడతాయి లేదు. గ్రేట్. సరే - అలా పిల్లితో ఇక్కడ. సో క్లిష్టమైన ఆకృతులు మెదడు దెబ్బతీస్తుందని. మేము ఈ సమస్యలను నివారించేందుకు సాధారణ వ్యక్తీకరణలను ఉపయోగించడానికి ఎందుకు అలా అని. ఇక్కడ మీరు చుట్టూ ప్లే చేయవచ్చు కొన్ని ఇతర ఉపయోగకరమైన రీతులు. మేము ఈ రోజు శోధన చూశారు, కానీ మీరు కూడా మ్యాచ్, స్ప్లిట్, findall, మరియు గుంపులను ఉపయోగించే. మీరు కేవలం పాటు సాధారణ వ్యక్తీకరణలు చేయవచ్చు కాబట్టి ఇతర మంచి విషయాలు నమూనాలను కోసం చూస్తున్న ఒక నమూనా తీసుకుని మరియు అన్ని మ్యాచ్ల్లో పట్టుకున్న - దాని వేరియబుల్ - మరియు తర్వాత మీ కోడ్ లో ఆ ఉపయోగించి. ఆ చాలా సహాయకారిగా ఉంటుంది. ఇతర విషయాలు లెక్కింపు ఉండవచ్చు. కాబట్టి మేము, ఒక సాధారణ వ్యక్తీకరణ పద్ధతి యొక్క ఉదాహరణలలో సంఖ్య పరిగణించవచ్చు మరియు ఆ మేము గుంపులను ఉపయోగించే ఏమిటి. మరియు ఇతర రీతులు కూడా సాధ్యమే. సో నేను మీరు సాధారణ వ్యక్తీకరణలను ఉపయోగించవచ్చు ఇతర మార్గాల గురించి కొద్దిగా మరింత మాట్లాడు. కాబట్టి ఒక మరింత అధునాతన అనువర్తన గజిబిజి మ్యాచింగ్ ఉంది. మీరు వ్యక్తీకరణ, జూలియస్ సీజర్, ఒక టెక్స్ట్ కోసం చూస్తున్నాయి కనుక మరియు మీరు, ఇతర భాషలలో గైస్ జూలియస్ సీజర్ లేదా పేరు జూలియస్ సీజర్ గాని చూడండి అప్పుడు మీరు కూడా ఆ విలువలు కొన్ని బరువు పెట్టేందుకు కావలసిన ఉండవచ్చు. మరియు దగ్గరగా తగినంత ఉంది - ఇది ఒక నిర్దిష్ట స్థాయికి దాటిందా - ఆపై మీకు కావలసిన జూలియస్ సీజర్ అంగీకరించడానికి చెయ్యలేరు. సో అలాగే కొన్ని ఇతర భాషలలో కోసం ఒక జంట వివిధ ఆచరణలు ఉన్నాయి. ఒక సులభ కొద్దిగా అనువర్తనానికి ఆన్లైన్ - ఇక్కడ కొన్ని ఇతర సాధనాలు, Regex పాల్ ఉన్నాయి మీ సాధారణ వ్యక్తీకరణలను సరిగ్గా కలిగిఉంటాయి తనిఖీ. మీరు మీ డెస్క్టాప్ నుండి అమలు చేసే వ్యక్తిగత టూల్స్ కూడా ఉన్నాయి అల్ట్రా పికో మరియు అలాగే కేవలం వంట పుస్తకాలు ఇష్టపడుతున్నారు. మీరు సాధారణ వ్యక్తీకరణలను ఒక టన్ను చేయడం ప్రాజెక్టు చేస్తున్న కనుక ఈ బహుశా నేటి పరిధి బయట వెళ్ళి ప్రదేశం. మరియు అప్పుడు మీరు ఎంత సాధారణ యొక్క భావాన్ని కు grep Unix లో ఉంది, పెర్ల్ అంతర్నిర్మిత, మరియు సి సి కోసం PCRE ఉంది ఆపై ఈ ఇతర భాషలు కూడా సాధారణ వ్యక్తీకరణకు ప్యాకేజెస కలిగి మేము నేటి రుచి వచ్చింది ఒకటే సింటాక్స్ తో పని. PHP, జావా, రూబీ, మరియు అందువలన న. ను నిజానికి విలువ ప్రస్తుతించారు ఉంది; ఇది ఒకటి ప్రజా యాక్సెస్ అనుమతించే అక్కడ కొద్దిమంది అప్లికేషన్లు సాధారణ వ్యక్తీకరణలను ఉపయోగించి దాని డేటాబేస్. మీరు Google కోడ్ శోధన చూడండి కాబట్టి మీరు కోడ్ వెదుక్కోవచ్చు మీరు ఒక ఫంక్షన్ ఉపయోగించే విధంగా సందర్భం కోసం చూస్తున్న ఉంటే, మీరు వివిధ సందర్భాలలో అన్ని రకాల వాడుతున్నారు ఆ ఫంక్షన్ కనుగొనేందుకు ఒక సాధారణ వ్యక్తీకరణ ఉపయోగించవచ్చు. మీరు fwrite కోసం కనిపించాలి, ఆపై మీరు వ్రాసిన జెండా కోసం చూడండి లేదా చదవలేనని మీరు ఆ సందర్భంలో ఉపయోగిస్తున్నారు fwrite ఒక ఉదాహరణ కోరుకుంటే. ఇక్కడ అదే అక్కడ విషయం, మరియు కొన్ని సూచనలు ఉన్నాయి. ఇది ముందుకు వెళుతున్న, అలాగే అందుబాటులో ఆన్లైన్ ఉంటుంది ఉంటే మీరు పైథాన్, grep, పెర్ల్ చూడండి అనుకుంటున్నారా - మీరు కొన్ని ప్రేరణ పొందాలనుకోవడం మీరు ఇక్కడ సిద్ధాంతం వద్ద మరింత చూడండి అనుకుంటే లేదా స్థలాలు నుండి కొన్ని మంచి జంపింగ్ ఉంటాయి. చాలా ధన్యవాదాలు. [CS50.TV]