2016-02-27 51 views
0

我在Python中使用正則表達式將Word Number對替換爲以下形式Word_Number用Word_Number替換字數字符串

例如:

import re 
text = 'Opera 20 Opera 19 Version Hello World'.lower() 
text = re.sub(r'(\[a-z]+)()(\d)', r'\1_\2', text) 
# text = re.sub(r'\([a-z]+)(.*)(\d+)', r'\1_\2', text) 
print(text) 

預期輸出:

opera_20 opera_19 version hello world 

有人可以幫我在這?

回答

3

我覺得這樣做你是什麼後

text = re.sub(r'([a-z]+)()(\d+)', r'\1_\3', text) 

的變化是

  1. [需要
  2. \d需要重複
  3. 捕獲組替換無處可逃必須\3不是\2

您可以刪除捕獲組的空白以及

re.sub(r'([a-z]+)\s+(\d+)', r'\1_\2', text) 
0

嘗試這個表達式

\b([a-zA-Z]+)\b\s(\d+)