作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个 Python 脚本,它将查找目录树中的所有 .py 文件,并进行以下替换:
myAppl.Variable(VDC).Read() --> MAPort.Read(Model.VDC).Value
但是目前的结果如下:
myAppl.Variable(VDC).Read() --> MAPort.Read(Model.DC).Value
为什么我的变量的第一个字母被删除了,我做错了什么?
mypath = "P:\\myTest"
fnames = []
for root, subFolders, files in os.walk(mypath):
for file in files:
if file.endswith(".py"):
fnames.append(root + '\\' + file)
for fname in fnames:
with open(fname) as reader:
data = reader.read()
data = re.sub(r'(myAppl.Variable\(.(.+)\).Read\(\))',
r'MAPort.Read(Model.\2).Value', data)
with open(fname, 'w') as writer:
writer.write(data)
最佳答案
由于这部分,(
后面的最适合的字符与点匹配: \(.
删除点。您还需要转义应该的点匹配文字句点符号。
使用
r'myAppl\.Variable\(([^()]*)\)\.Read\(\)'
并替换为r'MAPort.Read(Model.\1).Value'
。
请参阅regex demo和一个Python demo :
import re
rx = r"myAppl\.Variable\(([^()]*)\)\.Read\(\)"
s = "myAppl.Variable(VDC).Read()"
result = re.sub(rx, r"MAPort.Read(Model.\1).Value", s)
print(result)
# => MAPort.Read(Model.VDC).Value
关于python - 正则表达式操作截掉第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43575683/
我正在编写一个快速的 preg_replace 来从 CSS 中删除注释。 CSS 注释通常有这样的语法: /* Development Classes*/ /* Un-comment me for
使用 MySQL,我有三个表: 项目: ID name 1 "birthday party" 2 "soccer match" 3 "wine tasting evening" 4
我是一名优秀的程序员,十分优秀!