繁体   English   中英

尝试将Sed命令转换为Python re.sub

[英]Trying to convert Sed command to Python re.sub

我正在尝试将下面的Sed命令转换为python re.sub。 Sed命令基本上是从json字符串中提取access_token值。

finalString=$(echo $initialString |  sed -e 's/^.*"access_token":"\([^"]*\)".*$/\1/')

我的Python代码使我无法替换\\ 1部分。 我必须用值替换整个字符串

access_token = re.sub('^.*"access_token":"\([^"]*\)".*$',r'\1',initialString)
print access_token

我的工作echo语句如下,当我运行此语句时,我得到的是access_token值。 例如:如果initialString ='{"access_token":"xyz"}'输出将为xyz

echo initialString | sed -e 's/^.*"access_token":"\([^"]*\)".*$/\1/'

通常,您应该将始终将原始字符串用作正则表达式作为一条规则。 (具体来说,这无关紧要。但这是一个很好的经验法则。)

尝试这个:

access_token = re.sub(r'^.*"access_token":"([^"]*)".*$', r'\1', initialString)

我正在假设您的intialString类似于以下内容: "other":"json","access_token":"(1234)","more":"json"

access_token = re.sub(r'^.*"access_token":"\(([^\)]*)\)".*$',r'\1',initialString)

我注意到的问题是,您实际上从未捕获过任何要引用\\ 1的字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM