我已經看過this question,雖然答案解決了OP的問題,但實際上並未回答問題。當只有相關部分之前和之後的模式已知時,如何才能提取給定字符串的一部分?僅提取兩個正則表達式模式之間的字符串部分
例如,如果我有一個像這樣的字符串:
"Hi, this is a string where only values = { 000.10, 2.00, 5.0, 10.0 } are important
並給予這個字符串我需要專門000.10, 2.00, 5.0, 10.0
提取。我不知道會有多少號碼或他們的格式,或者他們之間有多少空間,但我知道values = {
和}
將在開始和結束。
使用正則表達式,我可以做找到values = { 000.10, 2.00, 5.0, 10.0 }
:
import re
string = "Hi, this is a string where only values = { 000.10, 2.00, 5.0, 10.0 } are important"
match = re.search(r'values\s=\s\{.+}\s', string)
if match:
print match.group()
else:
print "Could not find a match..."
,輸出:
values = { 000.10, 2.00, 5.0, 10.0 }
所以,我怎麼能得到的只有模式r'values\s=\s\{
和\}\s
之間的文本?
我知道,我可能只是空字符串替換起點和終點的模式是這樣的:
match.group().replace('values = { ', '').replace(' } ', '')
,但有沒有納入,我只希望在兩種模式之間的結果的事實的方式正則表達式本身?
希望這個問題有道理。任何答案將不勝感激。
根據OP的問題,您需要花括號之間的捕獲組= = – hwnd 2015-03-03 03:35:26
+1:非常簡單的解釋。對於OP來說,parens也可以放置在轉義括號內,即。 '\ {',與您的原始字符串類似,只能獲取*括號內的數字。 – Manhattan 2015-03-03 03:35:38
@hwnd哎呀,謝謝你通知:-) – thefourtheye 2015-03-03 03:37:11