Python да регуляр ифодаларда кўп қatorlik

Регуляр ифодалар кўп қatorли сатрлар билан ишлашда ўзига хос хусусиятларга эга. Келинг куйидаги оддий белгилар, сатр бушиш ва табуляция белгиларини ўз ичига олган сатр мисолида улар билан танишайлик:

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

Сатр бушиш

Сатр бушиш белгилари '\n' командаси ёрдамида тутиб олинилиши мумкин:

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

Натижада куйидаги сатр чиқади (сатрлар орасидаги бўшлиқ - табуляция):

python'111!  222!  333!  444'

Табуляция

Табуляция белгилари '\t' командаси ёрдамида тутиб олинилиши мумкин:

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

Коднинг ижроси натижаси:

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

Нуқтанинг иши

'.' командаси кўп қatorли сатр учун сатр бушиш белгиларини тутмайди:

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

Коднинг ижроси натижаси:

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

Хар қандай белги

Кўп қatorли сатрдаги барча белгиларни тутиб олиш учун [\s\S] шаклидаги ақлли усул ишлатилади. Бу конструкция барча оддий белгилар ва барча сатр бушишларни топади:

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

Коднинг ижроси натижаси:

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

Доллар

' командаси кўп қatorли режимда ҳар бир сатрнинг охини топади:

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

Коднинг ижроси натижаси:

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

Амалий масалалар

Задание 1

Сатр берилган:

python'''
  abc
  def
  ghi
  jkl
'''

Бу сатрдан куйидаги сатрни яратадиган регуляр ифодани ёзинг:

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

Сатр берилган:

python'''
  abc
  def
  ghi
  jkl
'''

Бу сатрдан куйидаги сатрни яратадиган регуляр ифодани ёзинг:

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

Сатр берилган:

python'''
  abc
  def
  ghi
  jkl
'''

Бу сатрдан куйидаги сатрни яратадиган регуляр ифодани ёзинг:

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

Сатр берилган:

python'''
  abc
  def
  ghi
  jkl
'''

Бу сатрдан куйидаги сатрни яратадиган регуляр ифодани ёзинг:

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

Сатр берилган:

python'''
  abc
  def
  ghi
  jkl
'''

Бу сатрдан куйидаги сатрни яратадиган регуляр ифодани ёзинг:

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

Сатр берилган:

python'''
  abc
  def
  ghi
  jkl
'''

Бу сатрдан куйидаги сатрни яратадиган регуляр ифодани ёзинг:

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