Multiregelmaat in Python regex

Reguliere expressies hebben hun eigen kenmerken bij het werken met meerdere regels. Laten we ze uitzoeken aan de hand van het volgende voorbeeld van een string die gewone karakters, nieuwe regel karakters en tabkarakters bevat:

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

Nieuwe regel

Nieuwe regel karakters kunnen worden gevangen met behulp van het commando '\n':

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

Het resultaat is de volgende string (de tussenruimtes zijn tabs):

python'111!  222!  333!  444'

Tab

Tabkarakters kunnen worden gevangen met behulp van het commando '\t':

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

Resultaat van de code:

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

Werking van de punt

Het commando '.' vangt geen nieuwe regel karakters in een string met meerdere regels:

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

Resultaat van de code:

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

Elk karakter

Om alle karakters in een string met meerdere regels te vangen, wordt een slimme truc gebruikt in de vorm van de combinatie [\s\S]. Deze constructie vindt alle gewone karakters en alle nieuwe regels:

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

Resultaat van de code:

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

Dollar

Het commando ' in de multiregelmodus zal het einde van elke regel vinden:

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

Resultaat van de code:

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

Praktische opdrachten

Задание 1

Gegeven de string:

python'''
  abc
  def
  ghi
  jkl
'''

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven de string:

python'''
  abc
  def
  ghi
  jkl
'''

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven de string:

python'''
  abc
  def
  ghi
  jkl
'''

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven de string:

python'''
  abc
  def
  ghi
  jkl
'''

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven de string:

python'''
  abc
  def
  ghi
  jkl
'''

Schrijf een reguliere expressie die van deze string de volgende maakt:

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

Gegeven de string:

python'''
  abc
  def
  ghi
  jkl
'''

Schrijf een reguliere expressie die van deze string de volgende maakt:

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