我需要一个正则表达式来匹配第二行中的数字。类似的输入是这样的:
^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+)?)/
哪里使用捕获的组......</p>
^ # 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-
)
如果它是一种支持lookbehind 的风格,那么还有其他选择。