2017-02-10 84 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)