当前位置: 首页 > 知识库问答 >
问题:

PCREGREP 匹配在第一次出现时停止 [重复]

暴博远
2023-03-14

我正在使用“pcregrep”在UNIX中实现多行搜索。我希望匹配在第一次出现时停止。

例如,如果我在文件中有以下文本:

mynameishin
hahahain
internetin
fdhsufsdhuiain
djbssdvbsbsduiain
sduigsyubsuvasdyivsyifvasin

我想打印,直到'ain'在'name'之后第一次出现。所以我只需要打印:

mynameishin
hahahain

我正在执行:

pcregrep -M 'name.*ain' *.txt

但是,我得到的输出为:

mynameishin
hahahain
internetin
fdhsufsdhuiain
djbssdvbsbsduiain

共有1个答案

赵高韵
2023-03-14
pcregrep -M 'name.*?ain' *.txt

让它不贪婪!!!!!!!!!!!.* 是 greedy.it 将消耗所有内容并在最后停止。

 类似资料:
  • TL;dr:我如何用pcregrep来拆分每一个多行匹配? 长版本:我有一些文件,有些行以(小写)字符开头,有些以数字或特殊字符开头。如果我至少有两行彼此相邻,以小写字母开头,我希望在我的输出中这样做。但是,我希望每个发现都被分隔/拆分,而不是相互附加。这是正则表达式: 所以,如果我提供这样的文件: 给出的结果是 然而,我想要的是这个: 这可能吗和/或我必须开始使用Python(或类似)?即使建议

  • 问题内容: 我正在编写“谁想成为百万富翁”游戏,并且我已经完成所有设置,这只是计时器的问题。 游戏的工作方式如下:如果用户正确回答了问题,他/她便会继续前进。如果不是,则游戏结束,他们可以选择再次玩。 游戏首次运行时,一切正常,计时器执行应做的事情-从30秒开始,倒计时,显示秒数。 但是,当用户单击“再次播放”按钮时,先前的计时器将继续使用新的计时器。像这样: -timerA在用户迷路之前还剩20

  • 我有一个文本文件,其中包含2行样本DNA序列,使用,我想找到与“CCC”匹配的模式,特别是跨越多行的模式(见下面test.txt中第1行末尾到第2行开头)。 测试.txt: 使用命令: 返回: 它似乎正确地突出了第1行中的2个C,然而,它突出了第2行中的第一个C,然后继续完全打印出第二行;给我一个C的复制品。 我在这里做错了什么,我怎样才能避免第二行中重复的C?

  • 我试图从下面的列表中获取网址,我做错了什么?

  • 我面临着与Java的匹配器的其他问题。我试图使用正则表达式匹配我的JSON的内容,而不使用外部库。我的JSON看起来像这样: 但是,我只想匹配上半部分中的单词,即在第一个匹配。我试图创建一个新的模式和匹配器,但我不知道如何进行,也不知道如何在第一次出现

  • 我有一个表,需要删除整个行,其中ID发生第二次和以后的时间,但留下第一次出现suCustoriID顺便说一下。M表的ID是主键,CustometID是重复的。因此,我需要删除所有重复的自定义ID行。 上面的代码将删除所有id,包括每个id的第一次出现,但我需要保留它们的第一次出现。请告知。