数据替换
s1=我看$name$和$name$s2=特别想看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}
s3=我看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}
怎么用s1和s2转换出s3呢? 本帖最后由 LuLD 于 2020-10-28 13:54 编辑
这样?
>>> s1 = '我看$name$和$name'
>>> s2 = '特别想看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
>>> s3 = s1[:2] + s2
>>> s3
'我看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
>>> s1 = '我看$name$和$name'
>>> s2 = '特别想看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
>>> s3 = s2.replace('特别想看','我看')
>>> s3
'我看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
>>>
LuLD 发表于 2020-10-28 11:40
这样?
如果我看 和 特别想看是个未知长度的同义词串呢? s1 = '我看$name$和$name'
s2 = '特别想看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
那么这两个字符固定么? LuLD 发表于 2020-10-28 12:42
s1 = '我看$name$和$name'
s2 = '特别想看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
...
这两个固定 本帖最后由 LuLD 于 2020-10-29 10:58 编辑
vcbeaut 发表于 2020-10-28 14:43
这两个固定
在字符串中查找字符,返回找到的位置
string.find(str)
比如
>>> s1 = '我看$name$和$name'
>>> s2 = '特别想看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
>>> s1.find(')
2
>>> s2.find('{')
4
>>> s3 = s1[:s1.find(')] + s2
>>> s3
'我看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
或者
>>> s4 = s2.replace(s2[:s2.find('{')],s1[:s1.find(')])
>>> s4
'我看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
>>> 应该用正则里的re.sub会简单很多吧 意思将 $符与$符 之间的内容,替换为为 {符与}符之间的内容?
如果是这样的话,使用正则分组替换就好了 本帖最后由 LuLD 于 2020-10-29 11:03 编辑
LuLD 发表于 2020-10-28 14:57
在字符串中查找字符,返回找到的位置
string.find(str)
s1.find('$')
代码中的 第三行的有缺失,可能是因为特殊字符的原因
s1.find('$')
>>> s1 = '我看$name$和$name'
>>> s2 = '特别想看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
>>> s1.find(') #s1.find(')
2
>>> s2.find('{')
4
>>> s3 = s1[:s1.find(')] + s2
>>> s3
'我看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
或者
>>> s4 = s2.replace(s2[:s2.find('{')],s1[:s1.find(')])
>>> s4
'我看{name=“天下第一”&tag="电视剧"}和{name="神话"&tag="电影"}'
>>>
页:
[1]