2016-05-17 246 views
0

提取$和%值,比方說從字符串字符串正則表達式從字符串

str1 = "4.1% Cash Back "

str2 = "$44.2 miles "

我想提取兩個 「4.1%」 和 「44.2 $」。什麼是最好的解決方案。我嘗試了幾種方法,但並不順利。

我試過以下的正則表達式:

pattern1 = r'(\d+\.\d+*%)' 
    pattern2 = r'$(\d+\.\d+*)' 
+3

您可能需要轉義''''和'%'符號, 'r'(\ $ \ d + \。\ d + *)'' –

回答

3

逃生$\

pattern = r'\d+(\.\d+)?%|\$\d+(\.\d+)?' 

demo

+0

@ rock321987,你是對的! – Fabricator

+0

@Fabricator如果沒有小數,怎麼樣? 它不接受沒有小數的數字 – CodeNinja101

+0

@sudobomb,通過添加'?'使得'(\。\ d +)'可選 – Fabricator

0

簡單使用split

>>> str1 = "4.1% Cash Back " 
>>> str1.split()[0] 
'4.1%' 
>>> str2 = "$44.2 miles " 
>>> str2.split()[0] 
'$44.2' 
0

不需要逃避'。'標誌 和你應該逃避$符號。 使用模式:

pattern1 = r'\d+.\d+%' 
pattern2 = r'\$\d+.\d+'