2017-02-10 86 views
0

我有一個來自服務器的HTML字符串。我想取得令牌的右側。Python正則表達式從字符串查找變量值

vega.csrfToken = "019387r218r72r696r826r87469786487"; 

我使用.*csrfToken[\s="\w]+

csrfToken = re.search('.*csrfToken[\s="\w]+', text, re.MULTILINE) 

而某些正則表達式測試門戶網站作品匹配整條生產線,Python中未能找到行。 匹配該行需要進行哪些更改?什麼是最好的方式來獲得只有RHS =在線。

+1

試試這個'R上的預期部分' 。 – Kasramvd

+0

您可能需要轉義正則表達式中的引號。 – Niitaku

+0

這個錯誤不是因爲正則表達式,也許你在代碼的其餘部分有一個語法錯誤。 – Kasramvd

回答

1

首先,您需要爲您的正則表達式使用r前綴,因爲它需要被解釋爲原始字符串。其次部分[\s="\w]+將匹配任何組合的空白,等號,雙引號和單詞字符長度1或更多,這將不會給你你想要的確切部分。此外,您還需要使用捕獲分組才能獲得預期的部分。

所以,你可以簡單地使用下面的正則表達式: '* csrfToken \ S = \ S 「(\ w +)」'

csrfToken = re.search(r'.*csrfToken\s=\s"(\w+)"', text, re.MULTILINE) 

並獲得使用csrfToken.group(1)