Flerlinieregularudtryk i Python

Regularudtryk har deres særpræg, når de arbejder med flerlinie strenge. Lad os undersøge dem ved hjælp af følgende streng, som indeholder almindelige tegn, linjeskifttegn og tabulatorer:

pythontxt = '''111
  222
  333
  444'''

Linjeskift

Linjeskifttegn kan fanges med kommandoen '\n':

pythonres = re.sub('\n', '!', txt)
print(res)

Resultatet vil være følgende streng (mellemrum mellem linjerne er tabulatorer):

python'111!  222!  333!  444'

Tabulator

Tabulatortegn kan fanges med kommandoen '\t':

pythonres = re.sub('\t', '!', txt)
print(res)

Resultatet af koden:

python'''
!111
!222
!333
!444
'''

Punktums funktion

Kommandoen '.' for en flerlinie-streng fanger ikke linjeskifttegn:

pythonres = re.sub('.', '!', txt)
print(res)

Resultatet af koden:

python'''
  !!!
  !!!!
  !!!!
  !!!!
'''

Ethvert tegn

For at fange alle tegn i en flerlinie- streng bruges et smart trick i form af kombinationen [\s\S]. Denne konstruktion vil finde alle almindelige tegn og alle linjeskift:

pythonres = re.sub('[\s\S]', '!', txt)
print(res)

Resultatet af koden:

python'!!!!!!!!!!!!!!!!!!'

Dollar-tegn

Kommandoen '$' i flerlinie-tilstand vil fange slutningen af hver linje:

pythonres = re.sub('$', '!', txt)
print(res)

Resultatet af koden:

python'''
  111!
  222!
  333!
  444!
'''

Praktiske opgaver

Задание 1

Givet strengen:

python'''
  abc
  def
  ghi
  jkl
'''

Skriv et regularudtryk, der laver følgende ud af denne streng:

python'''
  abc!
  def!
  ghi!
  jkl!
'''
Задание 2

Givet strengen:

python'''
  abc
  def
  ghi
  jkl
'''

Skriv et regularudtryk, der laver følgende ud af denne streng:

python'''
!  abc
!  def
!  ghi
!  jkl
'''
Задание 3

Givet strengen:

python'''
  abc
  def
  ghi
  jkl
'''

Skriv et regularudtryk, der laver følgende ud af denne streng:

python'''!
  abc
  def
  ghi
  jkl
!'''
Задание 4

Givet strengen:

python'''
  abc
  def
  ghi
  jkl
'''

Skriv et regularudtryk, der laver følgende ud af denne streng:

python'''!
!  abc
!  def
!  ghi
!  jkl
!'''
Задание 5

Givet strengen:

python'''
  abc
  def
  ghi
  jkl
'''

Skriv et regularudtryk, der laver følgende ud af denne streng:

python'''!
  abc!
  def!
  ghi!
  jkl!
!'''
Задание 6

Givet strengen:

python'''
  abc
  def
  ghi
  jkl
'''

Skriv et regularudtryk, der laver følgende ud af denne streng:

python'''
  !abc
  !def
  !ghi
  !jkl
'''