首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果满足条件,则排除单词

如果满足条件,则排除单词
EN

Stack Overflow用户
提问于 2022-10-18 21:07:10
回答 2查看 95关注 0票数 1

我有这个文本文件,我想排除"access“这个词,因为a后面跟着第二、第三或第四位置的a、b或c。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cat tt.txt
access
ample
taxing

我试过了,但它会返回所有三个单词。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# grep '[a-c][^a-c][^a-c][^a-c]' tt.txt
access
ample
taxing

更新1:

我使用了上面过于简化的例子。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cat tt.txt
access
bccess
ample
taxing
tacking
not

# grep -Ev '[a-c].{0,2}[a-c]' tt.txt
ample
taxing
not

# grep -E '[a-c].{0,2}[^a-c]' tt.txt
access
bccess
ample
taxing
tacking

# Expected
ample
taxing
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-18 21:35:50

我想排除access一词,因为a后面跟着abc位于第二、第三或第四位。

可以使用这个awk来完成

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '/[a-c]/ && !/[a-c].{0,2}[a-c]/' file

ample
taxing

RegEx分解:

  • [a-c]:匹配abc
  • .{0,2}:匹配任何characters
  • [a-c]:匹配abc

的0到2

或者在gnu-grep中使用查找器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grep -P '^(?=.*[a-c])(?!.*[a-c].{0,2}[a-c])' file

ample
taxing

perl中的同一解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
perl -ne 'print if /[a-c]/ && !/[a-c].{0,2}[a-c]/' file
票数 3
EN

Stack Overflow用户

发布于 2022-10-25 13:48:14

据我所知,你的情况是:

c.

  • In
  1. 字符串必须包含aba pos 0-3之一,不能在另一个abc.

之前使用abc。

那么,我们为什么不这样写代码呢。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use strict;
use warnings;

while (<DATA>) {
    next unless /[a-c]/;                            # skip if no abc
    next if substr($_, 0, 4) =~ /(?<=[a-c])[a-c]/;  # skip if an abc is preceded by an abc 
    print;                                          # otherwise print
}

__DATA__
access
bccess
ample
taxing
tacking
not

这是一种编写模拟菱形操作符<>的代码的方法,这是-n-p开关常用的Perl使用的。我们使用数据文件句柄来模拟一个文件。如果你想把它变成一个单线绳,它看起来就像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ perl -ne' next unless /[a-c]/; next if substr($_, 0, 4) =~ /(?<=[a-c])[a-c]/; print; ' file.txt

我已经在你的示例单词列表上测试过了,它似乎像预期的那样工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74120133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文