gpt4 book ai didi

regex - 我如何使用 sed 来匹配某个单词,然后用引号将该单词括起来?

转载 作者:行者123 更新时间:2023-12-01 02:45:23 25 4
gpt4 key购买 nike

我正在尝试使用 sed 替换所有出现的

{% url something arg1 arg2 ... argN %}

{% url 'something' arg1 arg2 ... argN %}(注意引号)

但前提是 something 还没有被引用!

我尝试了以下方法:

s/{% url [^']\(\S\+\)/{% url '\1'/

但这会捕获 something 中的第一个字符。所以结果是:

{% url '某事' arg1 arg2 ... argN %}

如果我这样做:

s/{% url[^']\(\S\+\)/{% url '\1'/

然后它不能正确排除已引用 something 的情况。

按照我的意思做的正确方法是什么?

最佳答案

你可以使用这个 sed:

# test data
cat file
{% url something arg1 arg2 ... argN %} with
{% url 'foobar' arg1 arg2 ... argN %}

# sed command
sed -E "s/(\{% url )([^'][^' ]+) /\1'\2' /" file
{% url 'something' arg1 arg2 ... argN %} with
{% url 'foobar' arg1 arg2 ... argN %}

关于regex - 我如何使用 sed 来匹配某个单词,然后用引号将该单词括起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39005021/

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