python如何在指定字符串位置插入字符串

我的代码如下:

<-[r4:hasSimpleCapability]-(g:Devices) where g.reach >= 100 g.payload >= 100 g.repeatability >= 0.1
RETURN DISTINCT g

如何自动插入 AND

<-[r4:hasSimpleCapability]-(g:Devices) where g.reach >= 100 AND g.payload >= 100 AND g.repeatability >= 0.1
RETURN DISTINCT g

有用记得采纳

# -*- coding: UTF-8 -*-
import re

sql = """<-[r4:hasSimpleCapability]-(g:Devices) where g.reach >= 100 g.payload >= 100 g.repeatability >= 0.1
RETURN DISTINCT g"""

replace_list = re.findall(r'g\..*? ', sql)
if len(replace_list) >= 2:
    for rep in replace_list[1:]:
        sql = sql.replace(rep, "AND " + rep)

print(sql)

这种问题主要的思路就是有找出原字符串的规律,然后用指定的内容替换原字符串中的内容
写法也有很多种,用正则表达式,用字符串的切片,用replace.函数
建议你多练练关于字符串的算法题

你的原字符串在输出各个条件时就可以同步加入AND符号啊,甚至还有OR XOR等等的都可以啊,每输出一个条件,根据需求自动把关系符号加上,不要把整个源字符串输出完了再找规律加关系符号不是更好吗?

首先根据where关键字分割,然后拿到where后的字符串,把g.替换为 AND g. 就可以了,其他的or同理


from re import *
 
s = """<-[r4:hasSimpleCapability]-(g:Devices) where g.reach >= 100 g.payload >= 100 g.repeatability >= 0.1
RETURN DISTINCT g"""
 
res = re.sub(r'(?P<gru>(?<=\d)\s+g.)',lambda y: ' AND ' + y.group('gru'), s)
print(res)
 
data = """<-[r4:hasSimpleCapability]-(g:Devices) where g.reach >= 100 g.payload >= 100 g.repeatability >= 0.1
RETURN DISTINCT g

"""
splitString = ' where '
dataArray = data.split(splitString)
dataArray[1] = dataArray[1].replace(' g.', ' AND g.')
print(splitString.join(dataArray))
import re

s = """<-[r4:hasSimpleCapability]-(g:Devices) where g.reach >= 100 g.payload >= 100 g.repeatability >= 0.1
RETURN DISTINCT g"""

res = re.sub(r'(?P<gru>(?<=\d)\s+g.)',lambda y: ' AND ' + y.group('gru'), s)
print(res)

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

使用replace机制 都指定位置了直接切开拼接不香吗