2015-03-30 3 views
-1
example = re.sub('「[^)]*」','', example) 

Мне нужно только заменить вещи, если «пример» превышает определенное количество символов. Я думаю, что я смогу сделать это с помощью модификаторов, но я не могу понять, как это сделать.Regex re.sub выше определенного количества символов

+1

пример с ожидаемым выходом будет лучше. –

ответ

0

Это может быть сделано с использованием справочных aheads в

example = re.sub('(?=^.{5})「[^)]*」','', example) 
  • (?=^.{5}) Посмотрите вперед утверждение. Проверяет, содержит ли строка 5 (например) символы.

    Здесь замена встречается, только если строка минимум 5 символов

ИЛИ

Обобщенная версия может быть записана в виде

length = "5" 
re.sub('(?=^.{' + length +'})[^)]*','', example) 

Пример

>>> example = "hello" 
>>> re.sub('(?=^.{3})[^)]*','', example) 
'' 
>>> example = "hello" 
>>> re.sub('(?=^.{10})[^)]*','', example) 
'hello' 
0
def repl(matchobj): 
    if len(matchobj.group(0))>5: 
     return #something 



example = re.sub('「[^)]*」',repl, example) 

Вы можете использовать функцию с re.sub .Based по длине вы можете определить свою собственную функцию и вернуть то, что вы хотите.

Смежные вопросы