如何在grep中使用正则表达式(仅基本正则表达式)实现替换?

卡耶

我知道这个问题没有多大意义,因为我可以只使用扩展正则表达式(ERE)。但是,让我们说一分钟,实现交替是当前的唯一选择。我将如何仅使用BRE实施它?还是我必须找到解决方法?

假设我们有以下字符串:

AAAAAA======-----======AAAAAAAAA

我现在的目标是仅将AAAAA,======,-----,======和AAAAAAAAA分别与基本正则表达式匹配。使用ERE可以很快完成,但是我想知道如何仅通过BRE来实现它。到目前为止,如果没有一些匹配的字符串相互重叠,我就找不到合适的方法(例如正则表达式匹配“ AAAAA ==”,这是不应该发生的)。

以撒

简单:它是没有可能的BRE有交替

POSIX BRE不支持任何其他功能。甚至不支持交替。

您的基本目标:

我现在的目标是将...分别与基本正则表达式匹配。

使用BRE是可能的:

$ str='AAAAAA======-----======AAAAAAAAA'
$ echo "$str" | grep -Eo '(.)\1*'
AAAAAA
======
-----
======
AAAAAAAAA

甚至在BRE grep中有几种模式:

$ echo "$str" | grep -o -e 'AA*' -e '--*' -e '==*'
AAAAAA
======
-----
======
AAAAAAAAA

或将您的解决方案限制为GNU grep(\|即使在BRE语法中也可以作为替代;这不是有效的POSIX功能):

$ echo "$str" | grep -o '\(AA*\)\|\(==*\)\|\(--*\)'

但是您的次要目标是:

是否还可以将它们分别放在单独的捕获组中?

只需要一个正则表达式,并且由于无法在BRE中进行替换,因此这是不可能的。

关于BRE中交替的一个很好的解释

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在yii中使用正则表达式

来自分类Dev

如何在grep -E中使用负正则表达式匹配?

来自分类Dev

基本的grep正则表达式

来自分类Dev

如何在绑定表达式中使用正则表达式文字?

来自分类Dev

如何在文件中使用::作为正则表达式的正则表达式serde

来自分类Dev

如何在angularjs中使用正则表达式

来自分类Dev

Grep在R中使用正则表达式

来自分类Dev

如何在Realm中使用正则表达式

来自分类Dev

如何在正则表达式中存储值以在同一正则表达式中使用

来自分类Dev

如何在Java的正则表达式中使用OR?

来自分类Dev

如何在SMLNJ中使用正则表达式

来自分类Dev

如何在正则表达式中使用Unicode

来自分类Dev

在grep中使用正则表达式元字符

来自分类Dev

如何在熊猫中使用正则表达式?

来自分类Dev

使用grep的正则表达式

来自分类Dev

如何在yii中使用正则表达式

来自分类Dev

如何在php中使用正则表达式?

来自分类Dev

如何仅使用正则表达式从日志消息中使用正则表达式来查找正则表达式整个行?

来自分类Dev

如何在正则表达式中使用加号

来自分类Dev

在grep的正则表达式模式中使用OR

来自分类Dev

在GNU grep正则表达式中使用引号

来自分类Dev

如何使用正则表达式实现替换?

来自分类Dev

如何在iptables中使用正则表达式

来自分类Dev

如何在正则表达式函数中使用

来自分类Dev

在 PowerShell 中使用正则表达式替换

来自分类Dev

如何在正则表达式中使用“[”和“]”

来自分类Dev

在ansible中使用正则表达式替换单词

来自分类Dev

如何在python中使用正则表达式?

来自分类Dev

在 JavaScript 中使用正则表达式替换

Related 相关文章

热门标签

归档