正则表达式只匹配第一行?

Jua*_*uan 18 regex

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

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

它将匹配"这是第一行.",无论第一行是什么.

pol*_*mon 28

这听起来更像是文件句柄缓冲区的工作.

你应该能够匹配第一行:

/^(.*)$/m
Run Code Online (Sandbox Code Playgroud)

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

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

如果您使用的是shell,请使用:

head -n1 file
Run Code Online (Sandbox Code Playgroud)

或作为过滤器:

commandmakingoutput | head -n1
Run Code Online (Sandbox Code Playgroud)

请澄清您的问题,如果这不是您正在寻找的wat.


Iva*_*rag 17

如果您需要第一行,无论如何,请转到:

 \A.*
Run Code Online (Sandbox Code Playgroud)

它会选择第一行,无论如何.

  • 如果有人关心,这是最简单的,适用于 Sublime Text 3。 (2认同)

Top*_*era 15

是的你可以.

javascript中的示例:

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

返回

"This is the first line."
Run Code Online (Sandbox Code Playgroud)

编辑

解释正则表达式:

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

  • ^:开始行
  • .*:任何char(.),0次或更多次(*)
  • $: 行结束.
  • m:多线模式(.也像\n一样)
  • [0]:获得结果数组的第一个位置