# Importera Python modulen för reguljära uttryck, # se https://docs.python.org/3/library/re.html # för ytterligare information och instruktioner om modulen. # coding: utf-8 import re # Här är en textsträng som vi använder i uppgiften. text = 'Här är en textsträng som vi använder i uppgiften. Här finns \ det STORA och små bokstäver! Kogvetarna får ställa alla frågor? Så de lär sig \ reguljära uttryck den här veckan... Vi kommer använda modulen RE i \ Python för att göra alla dagens uppgifter.' # Grupper med finditer(). def group_1(): """ Example of how to use the objects which is returned by finditer(). """ # 1. Kompilera ett uttryck som hittar alla ord som innehåller bokstaven s. # 2. Använd finditer och skriv ut alla matchande ord. regexp = re.compile(r'\b\w*s+w*\b', re.I) matchlist = regexp.finditer(text) for match in matchlist: first_match = match.group(0) print('Första matchen är', first_match) # Med grupperingar med iter med flera grupper. def group_2(): """ Example of how to use the objects which is returned by finditer(). """ # 1. Kompilera ett uttryck som hittar alla ord som innehåller bokstaven "a" # och som följs av bokstaven "a", t.ex "kasta", gruppera dessa för sig. # 2. Använd finditer och iterera över alla grupper och se till att också # få med hela ordet med hjälp av MatchObject.group. regexp = re.compile(r'\b(\w*(a+)\w*(a+)\w*)\b', re.I) matchlist = regexp.finditer(text) for match in matchlist: match1 = match.group(1) match2 = match.group(2) match3 = match.group(3) print('match1=', match1, 'match2=', match2, 'match3=', match3) # Substitutioner med regex. def sub1(): """ Example of how to use the sub function. """ # Kompilera ett uttryck som ersätter alla förekomster av # bokstaven "ä" med "ae". # Använd funktionen pythonfunktionen sub. exp = re.compile(r'ä', re.I) string = exp.sub(r'ae', text) print(string) # Girighet. def greedy(): """ Find from m to n of a regular expression. """ # Kompilera ett uttryck som matchar ord inleds med en konsonant # och som någonstans innehåller två likadana konsonanter. # Använd finditer för att iterera över alla matcher och skriva # ut det matchande uttrycket. regexp = re.compile(r'''\b[b-df-hj-np-tv-xz]+\w* ([b-df-hj-np-tv-xz]{1})\1\w*\b''', re.X+re.I) matchlist = regexp.finditer(text) for match in matchlist: match1 = match.group(0) match2 = match.group(1) match3 = match.group(2) print('match1=', match1, 'match2=', match2, 'match3=', match3) def sub2(): """ Example of how to use the sub function with multiple groups. """ # 1. Kompilera ett uttryck som matchar förekomsten varje ord # som inleds med konsonant(er)*. # 2. Skriv om det så det blir "resterande del av ord"-"all"- # "konsonanten/erna". Aka Allspråket. Ex. "knas" blir "asallkn" # 3. Kompilera ett uttryck som matchar förekomsten varje ord som innehåller # "all", men gruppera samtliga bokstäver enskilt. # 4. Skriv om det så att "l"-"del av ord"-"all"-"slutet av ordet"-"yck". # Ex. "asallkn" blir "lasallknyck". # 5. Skriv ut den resulterande strängen. exp = re.compile(r'\b([B-DF-HJ-NP-TVW-XZ]+)(\w+)\b', re.I) string = exp.sub(r'\2all\1', text.lower()) exp2 = re.compile(r'\b(\w*)(a)(l)(l)(\w*)\b', re.I) string = exp2.sub(r'\3\1\2\3\4\5yck', string) print(string) # Använd findall. def match_half(): """ Find all words which contains its exact half. """ # Kompilera ett uttryck som matchar alla ord som har exakt # likadana hälfter. I strängen nedan ska "farfar", "kaka" # och "mormor" matcha. txt = "Farmor och farfar bjöd på kaka innan vi åkte till mormor." regex = re.compile(r'\b(.+)(\1)\b', re.I) matchlst = regex.findall(txt) for match in matchlst: print(match) # Använd search. def search_with_re(): txt = 'Här kan stoppa in vilken textsträng som helst \ och den kan vara hur lång som helst!' regex = re.compile(r'[a-zåäö]+') matchobj = regex.search(text) print ('Första elementet som matchade vårt uttryck \ var: ', matchobj.group(0))
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question