2017-07-17 129 views
-2

我新手,Python和我試圖從另一個字符串與特定格式的字符串,例如:提取字符串特定的格式

我有原始的字符串: -

[email protected]$_ABC1234-XX12X 

我需要精確提取字符串ABC1234(必須包含三個首字符,後跟四個數字)。

+0

到目前爲止的任何嘗試?通常在不先嚐試某些事情的情況下提出問題就會皺起了眉頭。 –

+0

所以你想檢查字符串「ABC1234」是否在原始字符串?或者你想獲得它之前的三個字符和之後的四個字符? – LyricLy

+0

我已經嘗試過,但仍然無法取得成功。我想從原始字符串中得到完整的字符串ABC1234。 – loveclassic

回答

0

您可以使用re模塊在Python

matcher = re.search((?P<matched_string>[a-zA-Z]{3}\d{4})) 
needed_string = matcher.groupdict()['matched_string'] 

needed_string將是您所需的輸出。

對於re模塊是指:https://docs.python.org/3.4/library/re.html

+1

非常感謝你 – loveclassic

3

可以使用大括號repetition qualifiers{}以匹配3個字母和恰好四個數字字符:

>>> from re import search 
>>> 
>>> string = '[email protected]$_ABC1234-XX12X' 
>>> match = search('[a-zA-Z]{3}\d{4}', string) 
>>> match 
<_sre.SRE_Match object; span=(6, 13), match='ABC1234'> 
>>> match.group(0) # Use this to get the string that was matched. 
'ABC1234' 

正則表達式的說明:

  • [a-zA-Z]:匹配任何小寫字母的大寫字母......
  • {3}:正好三次。並且...
  • \d:任何數字字符...
  • {4}正好四次。
+0

非常感謝。我沒有得到它與正則表達式 – loveclassic

1

如果你現在字符串的精確座標,你可以使用這樣的事情:

>>> var = "[email protected]$_ABC1234-XX12X" 
>>> newstring = var[5:12] 
>>> newstring 
'ABC1234' 

一個Python字符串有一個切片方法。

+0

謝謝。但我更喜歡搜索方法,字符串的位置應該是靈活的。 – loveclassic