使用 python 替换一行中特定索引中的字符串
Replace a string in a specific index in a line using python
我正在处理一个 python 项目,我想用另一个字符串替换文件 (text.txt) 中一行中的特定单词。就像我有这一行 <string name="AppName">old string</string>
我想用一个变量替换旧字符串。这就是为什么我不想使用 replace('old string','new string')
我想根据索引替换它。非常感谢任何帮助。
更清楚地说,我想用新字符串
替换第一个 '>' 和第二个 '<' 之间的任何内容
使用正则表达式替换
from re import sub
string = "<string name='AppName'>Google</string>"
# anything between the >< will be converted to new_var_string
replace_string = sub(r'>\w+<', f'>{new_var_string}<', string)
示例 1:
from re import sub
string = "<string name='AppName'>Google</string>"
# anything between the >< will be converted to new_var_string
new_var_string = 'youtube'
replace_string = sub(r'>\w+<', f'>{new_var_string}<', string)
print(replace_string)
输出:
<string name='AppName'>youtube</string>
示例 2:
from re import sub
string = "<string name='AppName'>Goo1231gl125125e</string>"
# anything between the >< will be converted to new_var_string
new_var_string = 'youtube'
replace_string = sub(r'>\w+<', f'>{new_var_string}<', string)
print(replace_string)
输出:
<string name='AppName'>youtube</string>
这将用给定的字符串替换第一个“>”和第二个“<”之间的任何内容:
s = '<string name="AppName">old string</string>'
def replace(s, new):
if (i := s.find('>')) >= 0:
if (j := s[i:].find('<')) >= 0:
s = s[:i+1] + new + s[j+i:]
return s
print(replace(s, 'Google'))
输出:
<string name="AppName">Google</string>
注:
这通常使用 RE
来处理
我正在处理一个 python 项目,我想用另一个字符串替换文件 (text.txt) 中一行中的特定单词。就像我有这一行 <string name="AppName">old string</string>
我想用一个变量替换旧字符串。这就是为什么我不想使用 replace('old string','new string')
我想根据索引替换它。非常感谢任何帮助。
更清楚地说,我想用新字符串
使用正则表达式替换
from re import sub
string = "<string name='AppName'>Google</string>"
# anything between the >< will be converted to new_var_string
replace_string = sub(r'>\w+<', f'>{new_var_string}<', string)
示例 1:
from re import sub
string = "<string name='AppName'>Google</string>"
# anything between the >< will be converted to new_var_string
new_var_string = 'youtube'
replace_string = sub(r'>\w+<', f'>{new_var_string}<', string)
print(replace_string)
输出:
<string name='AppName'>youtube</string>
示例 2:
from re import sub
string = "<string name='AppName'>Goo1231gl125125e</string>"
# anything between the >< will be converted to new_var_string
new_var_string = 'youtube'
replace_string = sub(r'>\w+<', f'>{new_var_string}<', string)
print(replace_string)
输出:
<string name='AppName'>youtube</string>
这将用给定的字符串替换第一个“>”和第二个“<”之间的任何内容:
s = '<string name="AppName">old string</string>'
def replace(s, new):
if (i := s.find('>')) >= 0:
if (j := s[i:].find('<')) >= 0:
s = s[:i+1] + new + s[j+i:]
return s
print(replace(s, 'Google'))
输出:
<string name="AppName">Google</string>
注:
这通常使用 RE
来处理