Python string.replace正则表达式[重复]

2025-02-18 09:23:00
admin
原创
33
摘要:问题描述:我有一个以下形式的参数文件:parameter-name parameter-value 参数可以按任意顺序排列,但每行只有一个参数。我想parameter-value用新值替换一个参数。我正在使用之前发布的行替换函数来替换使用 Python 的行string.replace(pattern, su...

问题描述:

我有一个以下形式的参数文件:

parameter-name parameter-value

参数可以按任意顺序排列,但每行只有一个参数。我想parameter-value用新值替换一个参数。

我正在使用之前发布的行替换函数来替换使用 Python 的行string.replace(pattern, sub)。我使用的正则表达式在 vim 中有效,但在 中似乎无效string.replace()

这是我正在使用的正则表达式:

line.replace("^.*interfaceOpDataFile.*$/i", "interfaceOpDataFile %s" % (fileIn))

我要替换的参数名称在哪里"interfaceOpDataFile"(/i 表示不区分大小写),新参数值是变量的内容fileIn

有没有办法让 Python 识别这个正则表达式,或者还有其他方法来完成这个任务?


解决方案 1:

str.replace() v2 | v3无法识别正则表达式。

要使用正则表达式执行替换,请使用re.sub() v2 | v3。

例如:

import re

line = re.sub(
           r"(?i)^.*interfaceOpDataFile.*$", 
           "interfaceOpDataFile %s" % fileIn, 
           line
       )

在循环中,最好先编译正则表达式:

import re

regex = re.compile(r"^.*interfaceOpDataFile.*$", re.IGNORECASE)
for line in some_file:
    line = regex.sub("interfaceOpDataFile %s" % fileIn, line)
    # do something with the updated line

解决方案 2:

您正在寻找re.sub函数。

import re
s = "Example String"
replaced = re.sub('[ES]', 'a', s)
print(replaced)

将打印axample atring

解决方案 3:

总结

import sys
import re

f = sys.argv[1]
find = sys.argv[2]
replace = sys.argv[3]
with open (f, "r") as myfile:
     s=myfile.read()
ret = re.sub(find,replace, s)   # <<< This is where the magic happens
print ret

解决方案 4:

re.sub绝对是你要找的。所以你知道,你不需要锚点和通配符。

re.sub(r"(?i)interfaceOpDataFile", "interfaceOpDataFile %s" % filein, line)

将做同样的事情 - 匹配第一个看起来像“interfaceOpDataFile”的子字符串并替换它。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1325  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。它涵盖了从产品概念产生到产品退市的整个生命周期,通过整合跨部门团队、优化流程等方式,显著提升产品开发的效率和质量,进而为项目的成功奠定坚实基础。深入探究IPD流程的五个阶段与项目成功之间...
IPD流程分为几个阶段   4  
  华为作为全球知名的科技企业,其成功背后的管理体系备受关注。IPD(集成产品开发)流程作为华为核心的产品开发管理模式,其中的创新管理与实践更是蕴含着丰富的经验和深刻的智慧,对众多企业具有重要的借鉴意义。IPD流程的核心架构IPD流程旨在打破部门墙,实现跨部门的高效协作,将产品开发视为一个整体的流程。它涵盖了从市场需求分析...
华为IPD是什么   3  
  IPD(Integrated Product Development)研发管理体系作为一种先进的产品开发模式,在众多企业的发展历程中发挥了至关重要的作用。它不仅仅是一套流程,更是一种理念,一种能够全方位提升企业竞争力,推动企业持续发展的有效工具。深入探究IPD研发管理体系如何助力企业持续发展,对于众多渴望在市场中立足并...
IPD管理流程   3  
  IPD(Integrated Product Development)流程管理旨在通过整合产品开发流程、团队和资源,实现产品的快速、高质量交付。在这一过程中,有效降低成本是企业提升竞争力的关键。通过优化IPD流程管理中的各个环节,可以在不牺牲产品质量和性能的前提下,实现成本的显著降低,为企业创造更大的价值。优化产品规划...
IPD流程分为几个阶段   4  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用