[英]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.