gpt4 book ai didi

regex - 否定正则表达式的一部分

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:08 24 4
gpt4 key购买 nike

我正在寻找匹配的方法(伪代码)

grep -E '^[aoueiy]*(!sch|s|z)+.*$'

! 不匹配

它应该匹配sabczabcas,但不匹配usch

我怎样才能用 grep 以正确的方式写这个?

最佳答案

您可以使用 grep -E 分两步完成:

grep -E '^[aeiouy]*(s|z)+' infile | grep -vE '^[aeiouy]*(sch)+'

第一遍获取所有需要的匹配以及不需要的usch 样式匹配;第二遍删除不需要的。

对于包含

的输入文件
sabc
zabc
as
usch

输出是

$ grep -E '^[aeiouy]*(s|z)+' infile | grep -vE '^[aeiouy]*(sch)+'
sabc
zabc
as

或者,在 redneb's answer 上构建,使用 grep -P1 和一个否定的前瞻:

$ grep -P '^[aeiouy]*(?!sch)[sz]+' infile
sabc
zabc
as

1 请注意,-P 选项需要 GNU grep。

关于regex - 否定正则表达式的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39681643/

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