gpt4 book ai didi

regex - 使用带有 sed 的正则表达式分组替换字符

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

我有一个像这样的文本文件:

FOO BAR PIPPO PLUTO 31337 1010
FOOZ BAZ 130
VERY LONG LINE LIKE THIS THEN A NUMBER LIKE 42

我需要把它变成:
FOO-BAR-PIPPO-PLUTO 31337 1010
FOOZ-BAZ 130
VERY-LONG-LINE-LIKE-THIS-THEN-A-NUMBER-LIKE 42

我能做的最好的是:
sed -re 's/([A-Z]+)( )([A-Z]+)/\1-\3/g'

但输出是
FOO-BAR PIPPO-PLUTO 31337 1010
FOOZ-BAZ 130
VERY-LONG LINE-LIKE THIS-THEN A-NUMBER LIKE 42

关闭,但没有雪茄。知道为什么我的正则表达式不起作用吗?

最佳答案

你不能有重叠的匹配。未检测到“BAR PIPPO”,因为在匹配“FOO BAR”时已经消耗了“BAR”。

FOO BAR PIPPO PLUTO 31337 1010
------- ===========
1 2

试试这个:
$ sed -re 's/ ([A-Z])/-\1/g'

请注意,这没有重叠匹配:
FOO BAR PIPPO PLUTO 31337 1010
-- == --
1 2 3

关于regex - 使用带有 sed 的正则表达式分组替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305459/

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