![]() |
1
253
要让它起作用的关键是
上面写着:
一般来说,在
将输出“bar”。如果你使用
最多可以有9个捕获组及其备份引用。后面的引用按组出现的顺序编号,但它们可以按任何顺序使用,并且可以重复:
输出“A bar A”。
如果你有GNU
或变更,如:
这个
|
![]() |
3
28
你可以用grep
|
![]() |
4
7
我相信这个问题中给出的模式只是以身作则,目的是为了配合 任何 模式。 如果你有 塞德 由于gnu扩展允许在模式空间中插入换行符,一个建议是:
这些例子是关于tcsh的(是的,我 知道 它是错误的外壳)与Cygwin。(编辑:对于bash,删除set,并删除其周围的空格=。) |
![]() |
5
6
放弃并使用perl
自从
|
![]() |
6
6
数字序列这个答案适用于任何数量的数字组。例子:
扩大回答。
对.用捕获组替换所有文本:
或使用扩展语法(减少反引号并允许使用+):
要避免在没有号码时打印原始文本,请使用:
要匹配多个数字(并打印它们):
适用于任何数字运行计数:
与grep命令非常相似:
关于\d
sed无法识别'\d'(快捷方式)语法。上面使用的ascii等价物
所选答案使用这样的“字符类”来构建解决方案:
这个解决方案只适用于(确切地说)两组数字。 当然,由于答案是在shell内部执行的,我们可以定义两个变量来缩短这样的答案:
但是,正如已经解释过的,使用
这将包括重复运行的数字和编写一个简短的(er)命令。 |
![]() |
7
5
尝试
我在cygwin手下得到这个:
|
![]() |
8
2
这不是OP要求的(捕获组),但您可以使用以下方法提取数字:
给出以下信息:
|
![]() |
DotFX · RegEx捕获关键字前但括号后的所有内容 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 5 月前 |
![]() |
iato · 确保正则表达式不从命名材料中的数字中提取 6 月前 |
![]() |
vr8ce · 非成对标记中特定字符的正则表达式 6 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 6 月前 |
![]() |
Carsten · 使用最近的搜索模式更改文本块 6 月前 |