我正在尝试获取每一行的第一个元素,无论是数字还是字符串,但是当该行以数字开头时,我当前的尝试仍然包括它:
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
答案 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)
效果很好?