2010-09-11 151 views
14

是否可以使正则表达式匹配仅文本的第一行?所以如果我有文字:正则表达式只匹配第一行吗?

这是第一行。
这是第二行。 ...

它会匹配“这是第一行”,无论第一行是什么。

+0

正则表达式和技术使用正则表达式有很多种类型;请在您的代码中指定相关的代码。 – Jay 2010-09-11 02:17:50

回答

16

这听起来更像是一个文件句柄缓冲区的作业。

您应该能够到第一线与匹配:

/^(.*)$/m 

(一如既往,这是PCRE语法)

/m修改使得^$匹配嵌入换行。由于没有/g修饰符,它只会处理第一行,即第一行,然后停止。

如果您使用的是外壳,使用:

head -n1 file 

或过滤器:

commandmakingoutput | head -n1 

请澄清你的问题,如果这不是笏你正在寻找。

+0

如何在Oniguruma语法中做同样的事情? – Priyatham 2014-02-26 12:09:20

+0

做了诡计,谢谢! – 2014-06-24 07:24:15

14

是的,你可以。在javascript

实施例:

"This is the first line.\n This is the second line.".match(/^.*$/m)[0]; 

返回

"This is the first line." 

EDIT

说明正则表达式:

match(/^.*$/m)[0]

  • ^:开始线
  • .*的:(。)任何字符,0次或多次(*)
  • $:线的端部。
  • m:多行模式(就像一个\ n太)
  • [0]:得到的结果
+0

我不相信这是他正在寻找的...... – polemon 2010-09-11 02:25:24

+0

@polemon:是的,你是对的...我改变了我的答案。 – Topera 2010-09-11 02:27:37

7

如果数组的第一个位置,你需要的第一行,不管你去什么,在这里:

\A.* 

它会选择第一行,不管是什么。

+0

这是最简单的,在崇高文本3中工作,如果任何人关心。 – 2017-12-12 00:45:38