我需要一个正则表达式来匹配第二行中的数字。类似的输入是这样的:
^C1.1
xC20
SS3
M 4
十进制模式(-?\d+(\.\d+)?)
匹配所有数字,第二个数字可以在后面的代码中循环获取,但我需要一个正则表达式直接获取第二行中的数字。
答案 0 :(得分:1)
/^[^\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+)?/
答案 1 :(得分:1)
我能用这个正则表达式捕获它。
.*\n\D*(\d*).*\n
答案 2 :(得分:0)
查看第1组匹配的内容:
^.*?\r\n.*?(\d+)
如果这不起作用,请尝试:
^.*?\r\n.*?(\d+)
两者都是多线未设置......
答案 3 :(得分:0)
我可能会在/^.*?\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-
)
如果它是支持lookbehind的风味,那么还有其他选择。