我很新的正則表達式,我試圖找到實例在存在既包括信w
或e
其次是2個位數的字一個字符串,如e77
w10
等。插入空間的正則表達式
下面是我目前擁有的正則表達式,我覺得發現(糾正我,如果我錯了)
([e|w])\d{0,2}(\.\d{1,2})?
我怎麼能信e
或w
之後添加一個空格?如果沒有符合條件的實例,我想保留字符串。我需要使用re.sub嗎?我讀過一些關於這個的內容。
輸入:hello e77 world
所需的輸出:hello e 77 world
謝謝。
我很新的正則表達式,我試圖找到實例在存在既包括信w
或e
其次是2個位數的字一個字符串,如e77
w10
等。插入空間的正則表達式
下面是我目前擁有的正則表達式,我覺得發現(糾正我,如果我錯了)
([e|w])\d{0,2}(\.\d{1,2})?
我怎麼能信e
或w
之後添加一個空格?如果沒有符合條件的實例,我想保留字符串。我需要使用re.sub嗎?我讀過一些關於這個的內容。
輸入:hello e77 world
所需的輸出:hello e 77 world
謝謝。
你的正則表達式需要只是看起來像這樣:
([ew])(\d{2})
如果你想只匹配特別是2位數
,或者
([ew])(\d{1,2})
,如果你也想匹配像e4
括號稱爲捕獲組,可以在搜索和替換中反向引用,或使用python,使用re.sub
您的替換字符串應該像
\1 \2
所以應該像一條線一樣簡單:
re.sub(r'([ew])(\d{1,2})', r'\1 \2', your_string)
編輯:工作代碼
>>> import re
>>> your_string = 'hello e77 world'
>>>
>>> re.sub(r'([ew])(\d{1,2})', r'\1 \2', your_string)
'hello e 77 world'
這就是你'之後:
import re
print(re.sub(r'([ew])(\d{1,2})', r'\g<1> \g<2>', 'hello e77 world'))
你沒有*測試*你的正則表達式嗎?因爲它實際上並沒有在你的輸入中找到'e77'。 –
嘗試在這裏測試你的正則表達式https://regex101.com/#python – mkaran
@WayneWerner我認爲這是找到它,不是嗎? http://regexr.com/3e1j5然而,我知道它並不完全準確,因爲它也匹配所有的e/w。 – hl95