python-3.x 如何搜索没有引号的字符串?

zzwlnbp8  于 2023-05-08  发布在  Python
关注(0)|答案(1)|浏览(222)

我的目标是找到一个没有单引号的字符串,然后将其替换为其他值。我从服务器上得到了这样的字符串,它可以根据情况进行更改:

field_domain = "['|', ('company_id', '=', False), ('company_id', '=', company_id)]"

我正在尝试这样,我应该只得到company_id或任何没有单引号的字符串。
所以如果我写field_domain.find("company_id"),它是'company_id'的第一个字母'c'
为了检查,我写了field_domain[8:],它给了我:
"company_id', '=', False), ('company_id', '=', company_id)]"
它给出了单一上市公司ID的索引
有解决办法吗?抱歉英语不好。

xzv2uavs

xzv2uavs1#

好的,我是这样推导的。如果其他人能提出解决方案,我也很乐意参与其中。

import re

# Original string
field_domain = "['|', ('company_id', '=', False), ('company_id', '=', company_id)]"

# Extract strings that end with ')' and their indices, exclude strings with False)
matches = [(m.group(0), m.start()) for m in re.finditer(r'\b\w+\b\)', field_domain) if 'False)' not in m.group(0)]

# Convert list of tuples to list of strings
result_list = [f"{match[0]} ({match[1]})" for match in matches]

# Convert list to string
result_string = ' '.join(result_list)

# Output
print(result_string)

相关问题