2013-07-26 1 views
1

Так что у меня есть питон v2.7 файл с некоторым кодом, как это:ВИМ регулярное выражение для python2 печати на Python3

print 'asdf' 
print 'hi mom!' 

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

print('asdf') 
print('hi mom!') 

Я пытался использовать следующее регулярное выражение в Vim, чтобы решить эту проблему, но она не работает:

:%s/print\ '.*'/print('\1')/gc 

Он просто дал мне функции печати (с круглыми скобками), в которых были пустые строки. Любая помощь приветствуется; Благодарю.

+10

Для любви все, что оптимизируется и доказуемо, пожалуйста, используйте [2to3] (http://docs.python.org/2/library/2to3.html) – inspectorG4dget

ответ

3

Это будет работать для примеров

:%s/print \('.*'\)/print(\1)/g 
  1. Вам не нужно бежать пространство.
  2. В скобках вы ничего не фиксируете, поэтому \1 - это пустая строка в вашем регулярном выражении.

Но я также рекомендую использовать 2to3

+0

Спасибо, это регулярное выражение, которое я искал. Мне не нужно что-то вроде «2to3», но в любом случае спасибо. – Benjamin

+1

@Benjamin, если вы собираетесь потратить много времени на использование регулярных выражений в vim (если вы используете vim, вероятно, будете использовать их много), я бы рекомендовал прочитать или скрыть много ': h pattern-search' – FDinoff

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