python字符串搜索代表

2024-10-01 17:22:18 发布

您现在位置:Python中文网/ 问答频道 /正文

SSViewer::set_theme('bullsorbit'); 

这是我的绳子。我想要在字符串"SSViewer::set_theme('bullsorbit'); "中搜索,并用另一个字符串替换{}。'bullsorbit'字符串正在动态更改。在


Tags: 字符串动态themeset绳子bullsorbitssviewer
3条回答
>> my_string = "SSViewer::set_theme('bullsorbit');"
>>> import re
>>> change = re.findall(r"SSViewer::set_theme\('(\w*)'\);",my_string)
>>> my_string.replace(change[0],"blah")
"SSViewer::set_theme('blah');"

虽然不优雅,但很管用。findall将返回('')中项目的字典,然后替换它们。如果你能让sub去工作,那看起来会更好,但这肯定会奏效

在无法测试这一点的情况下,您可能需要修改正则表达式(它们可能是其中的错误)

import re
re.sub("SSViewer::set_theme\('[a-z]+'\)", "SSViewer::set_theme('whatever')", my_string)

这是你想要的吗?在

刚刚测试过,这是一些示例输出:

^{pr2}$

产生:

Some file with some other junk
SSViewer::set_theme('whatever');
SSViewer::set_theme('whatever');
Something else

如果要对文件执行此操作:

my_string = open('myfile', 'r').read()
st = "SSViewer::set_theme('"
for line in open("file.txt"):
    line=line.strip()
    if st in line:
        a = line[ :line.index(st)+len(st)]
        b = line [line.index(st)+len(st): ]
        i = b.index("')")
        b = b[i:]
        print a + "newword" + b

相关问题 更多 >

    热门问题