正则表达式获取每行的第一个元素

时间:2019-03-13 14:37:48

标签: javascript regex

我正在尝试获取每一行的第一个元素,无论是数字还是字符串,但是当该行以数字开头时,我当前的尝试仍然包括它:

const totalWords = "===========\n\n  1-test\n\n 2-ests \n\n 1 zfzrf";

const firstWord = totalWords.replace(/\s.*/,'')

我得到的输出:

1-test
2-ests 
1 zfzrf

我想要的输出:

1
2 
1 

3 个答案:

答案 0 :(得分:2)

或者,如果您对非正则表达式版本感兴趣(应该更快)

ALTER FUNCTION [dbo].[fn_TMNCS_MaxDate]
()
RETURNS date
AS
BEGIN
  DECLARE @ResultVar as date
  SELECT TOP (1) @ResultVar=  [DateOfData] FROM dbo.TMNCS ORDER BY TMNCS_ID DESC --Assuming this is the Clustered index/ identity col
  RETURN @ResultVar    
END
GO

答案 1 :(得分:1)

您的正则表达式应跳过前导空格,然后捕获所有内容,直到空格或破折号为止,因此您可能希望使用^\s*([^ -]+)

(有关应用于示例的信息,请参见https://regex101.com/r/u7ELiw/1

如果您还确切地知道自己要寻找一位数字,则可以改用^\s*(\d)

(有关应用,请再次参见https://regex101.com/r/IWhEQ1/1

答案 2 :(得分:0)

也许我不太清楚你在问什么,但是为什么在

时使用正则表达式这样复杂的东西呢?
line.charAt(0)

效果很好?