如何解决如果字符串中的行以字符开头,则 Python 替换子字符串
措辞类似的问题,但不是我想要的 -
我有一个很长的多行字符串,如果该行以某个字符开头,我想替换该行上的一个子字符串。
在这种情况下,替换以 from
开头的行的 --
string_file =
'words more words from to cow dog
-- words more words from to cat hot dog
words more words words words'
所以这里它只会替换第二行 from
。像这样 -
def substring_replace(str_file):
for line in string_file:
if line.startswith(' --'):
line.replace('from','fromm')
substring_replace(string_file)
解决方法
几个问题:
-
for line in string_file:
迭代字符,而不是行。您可以使用for line in string_file.splitlines():
遍历行。 -
lines.replace()
不会就地修改该行,而是返回一个新行。您需要将其分配给某些东西以产生结果。 - 函数参数的名称应该是
string_file
,而不是str
。 - 该函数需要返回新字符串,因此您可以将其分配给一个变量。
def substring_replace(string_file):
result = []
for line in string_file.splitlines():
if line.startswith('-- '):
line = line.replace('from','fromm')
result.append(line)
return '\n'.join(result)
string_file = substring_replace(string_file)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。