Pelbagai Baris dalam Regex Python

Ungkapan biasa mempunyai keunikan tersendiri apabila bekerja dengan rentetan pelbagai baris. Mari kita fahami melalui contoh rentetan berikut yang mengandungi aksara biasa, aksara baris baru dan tab:

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

Baris Baru

Aksara baris baru boleh ditangkap menggunakan perintah '\n':

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

Hasilnya, rentetan berikut akan dipaparkan (jarak antara baris adalah tab):

python'111!  222!  333!  444'

Tab

Aksara tab boleh ditangkap menggunakan perintah '\t':

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

Hasil pelaksanaan kod:

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

Tingkah Laku Titik

Perintah '.' untuk rentetan pelbagai baris tidak menangkap aksara baris baru:

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

Hasil pelaksanaan kod:

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

Mana-mana Aksara

Untuk menangkap semua aksara dalam rentetan pelbagai baris, satu helah digunakan iaitu gabungan [\s\S]. Konstruksi sedemikian akan menemui semua aksara biasa dan semua baris baru:

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

Hasil pelaksanaan kod:

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

Dolar

Perintah ' dalam mod pelbagai baris akan menangkap hujung setiap baris:

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

Hasil pelaksanaan kod:

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

Masalah Praktikal

Задание 1

Diberi rentetan:

python'''
  abc
  def
  ghi
  jkl
'''

Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:

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

Diberi rentetan:

python'''
  abc
  def
  ghi
  jkl
'''

Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:

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

Diberi rentetan:

python'''
  abc
  def
  ghi
  jkl
'''

Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:

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

Diberi rentetan:

python'''
  abc
  def
  ghi
  jkl
'''

Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:

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

Diberi rentetan:

python'''
  abc
  def
  ghi
  jkl
'''

Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:

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

Diberi rentetan:

python'''
  abc
  def
  ghi
  jkl
'''

Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:

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