2016-09-02 42 views
1

我的意思是這個正則表達式中的任何數字。如何用w {3}替換模式w {3,3}

w{1,1} --> w{1} 
w{2,2} --> w{2} 

等等。

+0

會有什麼{1,2}返回? –

+0

不會改變。我只想用w {digit}替換w {}。所有的休息 - 沒有改變。 –

回答

1

查找w\{(\d*),\1\}並用w{\1}替換它。

下面是一個完整的示例與Python代碼:

import re 
re.sub(r'w\{\s*([0-9]+)\s*,\s*\1\s*\}', r'w{\1}', 'w{1,1}') 

說明:

  • 我們要逃避花括號:\{\}
  • 我們需要一個或多個號碼:[0-9]+
  • 此編號被零個或多個空格包圍:\s*
  • 然後再相同的數字,用反向引用\1
  • 最後,我們可以使用反向引用在更換過:w{\1}
+0

import re str =「somestring \ w {3,3} somestring」 line = re.sub(r「w \ {(\ d *),\ 1 \}」,「w {\ 1}」, str) print(line) 我錯過了一些東西:「somestring \ w {} somestring」 –

+0

它現在正在工作。謝謝! –

+0

也增加了完整的python代碼+正則表達式解釋。 –

相關問題