2015-08-21 58 views
3

我對Python很新,我知道Perl可以做到這一點,但是我還沒有在Python中找到它。 我想要做的是從一行中提取一個令牌。如何在python中從字符串中提取標記?

p = re.compile('555=\d+') 
ID = p.findall(line) 

其中行是文件中的單行,並且應該記錄555 =之後的數字。然而,有了這兩行,我只能得到像555 = 1234567這樣的東西,我真正想要的是1234567.任何人都可以提供幫助並提出解決方案嗎? 謝謝!

+0

使用'search'方法(僅用於一個匹配)而不是'findall'(用於幾個匹配)。你必須將你的模式放入一個原始字符串'r'555 = \ d +''或者將反斜槓'555 = \\ d +''轉義出來。如果您只想提取右側的值,請使用捕獲組,或者爲什麼不是後向(但速度更慢)。 –

回答

7

使用()捕捉到你想要的東西:

>>> p = re.compile('555=(\d+)') 
>>> p.findall("555=1234567") 
['1234567'] 

(...)

匹配任何正則表達式的括號內, 和指示的開始和結束組;匹配的處理之後,可以檢索一組 的內容,並且可以在字符串中後來與\數字特殊序列

ref

0

你應該捕捉你想要使用表達式匹配 「()」。 因此,你的表情應該是p = re.compile('555=(\d+)')

相關問題