python - 替换每行第一个单词中所有匹配正则表达式的匹配项
问题描述
我想解析一个 ASCII 文件并转义“。” 每行的第一个单词中的字符。这是一个例子:
line='DXa0.Xa1.a2 p1 p2 deviceName a=157.585p b=54.46u $x=106.124 $y=107.996 $a=0'
我想制作以下
DXa0\.Xa1\.a2 p1 p2 deviceName a=157.585p b=54.46u $x=106.124 $y=107.996 $a=0
我可以为此示例运行以下命令:
re.sub(r"\.", '\\.', line, count=2 )
但这假设 2“。” 单词中的字符,这是无法保证的。我现在找到的解决方法是
re.sub(r"\.", '\\.', line.split(' ', 1)[0]) + ' ' + line.split(' ', 1)[1]
它产生了预期的结果,但这并不漂亮,我相信有更好的方法。
解决方案
你必须坚持re
吗?
没有它很容易:
p = line.partition(' ')
escaped = p[0].replace(r'.', r'\.') + p[1] + p[2]
escaped
Out:
'DXa0\\.Xa1\\.a2 p1 p2 deviceName a=157.585p b=54.46u $x=106.124 $y=107.996 $a=0'
推荐阅读
- node.js - 在多租户应用程序中使用 Passport.js 进行 OAuth
- python - Keras LSTM 不同的 X 时间步与 Y 时间步(例如,在最后 4 个学习预测下一个 2)
- angular - 无法在 ionic 3 中调用 Api
- c# - 如何将 FINDSTR 的输出从 C# 保存到文本文件?
- typescript - 打字稿对类的通用约束
- angular - 角度 7 刷新或路线更改缓慢
- database - MS Access Multiple value from a FORM into table as a Single Line
- c++ - One-line output operator for a binary tree
- php - Cakephp 3.6.14:在文本字段中显示 html 格式的文本
- c - Display Progress C