我正在尝试将下面的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/'
答案 0 :(得分:1)
通常,您应该始终将原始字符串用作Python中的正则表达式。 (具体来说,这里没关系。但这是一个很好的经验法则。)
试试这个:
access_token = re.sub(r'^.*"access_token":"([^"]*)".*$', r'\1', initialString)
答案 1 :(得分:0)
我正在假设你的intialString
类似于:"other":"json","access_token":"(1234)","more":"json"
access_token = re.sub(r'^.*"access_token":"\(([^\)]*)\)".*$',r'\1',initialString)
我注意到的问题是你从来没有真正捕获任何字符来引用\ 1.