LINUX.ORG.RU

Помощь с регулярным выражением.

 , ,


0

2

Всем привет. Нужно регулярка для поиска всех пробелов, которые не обрамлены в кавычки и скобки. Например, для строки:

[Regular expressions] - [rather complex] and "extensive theme".
Должны быть найдены пробелы таким образом (найденные пробелы обозначу #):
[Regular expressions]#-#[rather complex]#and#"extensive theme".
На текущий момент составил регулярку для поиска текста, заключенного в кавычки и скобки: regex101.com

inp='[Regular expressions] - [rather complex] and "extensive theme".'
out,a,b='',0,0

for i in inp:
  if i=='[':
    a=1
  elif i==']':
    a=0
  elif i=='"':
    b^=1
  elif i==' 'and not(a or b):
    out+='#'
    continue
  out+=i

print inp,'\n',out
$ python test.py
[Regular expressions] - [rather complex] and "extensive theme". 
[Regular expressions]#-#[rather complex]#and#"extensive theme".
anonymous
()
Ответ на: комментарий от aedeph_

+++

Задачка-то не для регулярок, на самом деле. Появится между открывающей кавычкой и закрывающей экранированная - например, \", и всё, конец всей песне.

yoghurt ★★★★★
()
Последнее исправление: yoghurt (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.