正则表达式以匹配第二行中的数字

本文关键字:二行 数字 正则表达式 | 更新日期: 2023-09-27 18:30:14

我需要一个正则表达式来匹配第二行中的数字。类似的输入如下所示:

^C1.1
xC20 
SS3 
M 4 

十进制模式(-?'d+('.'d+)?)匹配所有数字,第二个数字可以在后面的代码上循环,但我需要一个正则表达式来直接获取第二行中的数字。

正则表达式以匹配第二行中的数字

/^[^'r'n]*'r?'n'D*?(-?'d+('.'d+)?)/

这通过在输入开头捕获一行来操作:

^         Beginning of the string
[^'r'n]*  Anything that isn't a line terminator
'r?'n     A newline, optionally preceded by a carriage return
然后是

所有非数字字符,然后是您的数字。

由于您现在已经反复更改了需求,因此请尝试以下尺寸:

/(?<='n'D*)-?'d+('.'d+)?/

我能够用这个正则表达式捕获它。

.*'n'D*('d*).*'n

查看与此匹配的任何内容的第 1 组:

^.*?'r'n.*?('d+)

如果这不起作用,请尝试以下操作:

^.*?'r'n.*?('d+)

两者都带有多行未设置...

我可能会在/^.*?'r?'n.*?(-?'d+(?:'.'d+)?)/中使用捕获的组,其中...

^                  # beginning of string
.*?                # anything...
'r?'n              # followed by a new line
.*?                # anything...
(                  # followed by...
   -?              # an optional negative sign (minus)
   'd+             # a number
   (?:             #   -this part not captured explicitly-
       '.'d+       # a dot and a number
   )?              #   -and is optional-
)

如果它是一种支持后视的口味,那么还有其他选择。