gpt4 book ai didi

python - 将字符添加到文件内各种长度字符串的开头/结尾(Python/*nix)

转载 作者:行者123 更新时间:2023-12-01 07:08:34 24 4
gpt4 key购买 nike

我有一个包含数十条SQL语句的SQL文件,其中每个SQL语句都包含$<variable_name>形式的变量。 (例如 $today )。变量有不同的长度,总是以$开头。后面可以跟各种字符(例如 .,):\n 、空格等),但尾随字符与变量无关。

我正在尝试替换 $<variable_name>@@@<variable_name>@@@ 。更换 $ 很容易与 @@@一开始,但我无法找到添加 @@@ 的解决方案到变量的末尾。

首选 Linux 命令行或 Python 解决方案。我开始摆弄......

> grep '\$' file.sql | cut -d'$' -f2 | cut -d'.' -f1

我可以不断地添加 cut使用新的分隔符,但这并不能真正提供解决方案。

最佳答案

使用sub来自 python 正则表达式模块的函数 re :

from re import sub

text = '$some_name,other stuff,whatever'

result = sub(r'\$(\w*)', r'@@@\1@@@', text)

print(result)

给予:

@@@some_name@@@,other stuff,whatever

正则表达式\$(\w*)匹配一个组,首先\w匹配任何字母数字字符或下划线,然后* 表示多个。该组可以被引用为\1。然后,我们将替换构建为 @@@\1@@@,其中 \1 被匹配的字符替换。

如果您想将其应用到整个文件,您可以使用 fileinput 就地编辑文件。模块:

from fileinput import input

for line in input(['file.sql'], inplace=True):
print(sub(r'\$(\w*)', r'@@@\1@@@', line)

关于python - 将字符添加到文件内各种长度字符串的开头/结尾(Python/*nix),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58331736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com