Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python字符串搜索替换_Python_String_Search_Replace - Fatal编程技术网

python字符串搜索替换

python字符串搜索替换,python,string,search,replace,Python,String,Search,Replace,这是我的绳子。我想搜索字符串“SSViewer::set_theme('bullsorbit');”并用另一个字符串替换'bullsorbit''bullsorbit'字符串正在动态更改。无法测试此情况,因此您可能需要修改正则表达式(它们可能是其中的错误) 这是你想要的吗 刚刚测试过,这是一些示例输出: import re re.sub("SSViewer::set_theme\('[a-z]+'\)", "SSViewer::set_theme('whatever')", my_string)

这是我的绳子。我想搜索字符串
“SSViewer::set_theme('bullsorbit');”
并用另一个字符串替换
'bullsorbit'
<代码>'bullsorbit'字符串正在动态更改。

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

这是你想要的吗

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

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

my_string = """Some file with some other junk
SSViewer::set_theme('bullsorbit');
SSViewer::set_theme('another');
Something else"""

import re
replaced = re.sub("SSViewer::set_theme\('[a-z]+'\)", "SSViewer::set_theme('whatever')", my_string)
print replaced
如果要对文件执行此操作:

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

它不优雅,但很管用。findall将返回(“”)中项目的字典,然后替换它们。如果你能让sub开始工作,那么看起来可能会更好,但这肯定会起作用,虽然你的解释并不完全清楚,但我认为你可以利用以下几点:

>> 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');"
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

谢谢你的回复。。这是一个文件。。我要读取文件并搜索该字符串,然后替换Everwhat,这将用
my_string
替换所有内容。通过在交互式控制台中运行它来检查这一点,方法是:在交互式控制台中运行re file_read=open(“/var/www/rajaneesh/mysite/_config.php”,“r”)contents=file_read.read()file_read.close()这是我的代码我想要搜索字符串“SSViewer::set_theme('whatever')”文件,并用您想要从模式中找到“bullsorbit”的新字符串替换该字符串“SSViewer::set_主题('bullsorbit');“然后用另一个字符串替换所有出现的‘bullsorbit’?这就是你要问的吗?请清楚,这只适用于小写字母[a-z]如果你想让它捕捉其他字符,你需要调整正则表达式。我想他是指Bull SoRebe是动态变化的,所以上面可能不是他所需要的。动态变化到底意味着什么?用另一个字符串来运行它,<代码> BulsRoBIT2’/CODE。动态变化意味着什么?考虑一下:SSViewer::set_theme('theme')将替换为“SSViewer::set_blah('blah')”
>> 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');"
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
open(fname).read().replace('bullsorbit', 'new_string')