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

时间:2013-01-12 14:15:33

标签: c# .net regex numbers

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

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

我错过了一些细节 1.在数字之前,字符串也可以包含特殊字符 它是单线,而不是多线。

5 个答案:

答案 0 :(得分:7)

试试这个模式,

\d+(\.\d+)?$

答案 1 :(得分:3)

匹配行开头,之后的任何字符以及字符串末尾的数字(带有可选的小数部分)(允许尾随空白字符)。第一部分是一个懒惰的匹配,即它将匹配可能的最低数量的字符,将整个数字留在表达式的最后部分。

^.*?(\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

答案 2 :(得分:3)

在c#(\d+)$

中使用以下正则表达式

答案 3 :(得分:2)

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

当然,这只是告诉你最后一个字符是一个数字。它不会捕获除最后一个字符之外的任何内容。要捕获数字,只需要这样:@"\d*\.?\d+$"

如果你的字符串可能更复杂,例如“Test1.2 Test2”,你想要两个数字:@"\d*\.?\d+\b"

答案 4 :(得分:1)

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