字符串末尾的数字的正则表达式

本文关键字:数字 正则表达式 字符串 | 更新日期: 2023-09-27 17:51:25

我想知道字符串是否以数字结束(带/不带十进制)。如果它结束了,我想提取它。

"Test1" => 1
"Test"  => NOT FOUND
"Test123" => 123
"Test1.1" => 1.1

我漏掉了一些细节。
1. 在number之前,string也可以包含特殊字符
2. 它是单行,而不是多行。

字符串末尾的数字的正则表达式

试试这个模式,

'd+('.'d+)?$

带有非捕获组的版本:

'd+(?:'.'d+)?$

匹配行开头、其后的任何字符和字符串末尾的一个数字(带有可选的小数部分)(允许尾随空白字符)。第一部分是惰性匹配,即它将匹配尽可能少的字符数,将整数保留到表达式的最后一部分。

^.*?('d+(?:[.,]'d+)?)'s*$

我的测试案例

"Test1
"Test
"Test123
"Test1.1
test 1.2 times 1 is 1.2
test 1.2 times 1 is ?
test 1.2 times 1 is 134.2234
1.2

在c# ('d+)$

中使用以下正则表达式

以数字结尾的字符串的正则表达式:@"'d$"。使用http://regexpal.com/来尝试正则表达式。

当然,这只是告诉你最后一个字符是一个数字。它只捕获最后一个字符。要捕获数字只需要这样:@"'d*'.?'d+$" .

如果您的字符串可以更复杂,例如"Test1.2 Test2",并且您想要两个数字:@"'d*'.?'d+'b"

使用此正则表达式[a-zA-Z]+'d+([,.]'d+)?'b$如果你只想要数字,就用这个(?<=[a-zA-Z]+)'d+([,.]'d+)?'b$