字符串末尾的数字的正则表达式
本文关键字:数字 正则表达式 字符串 | 更新日期: 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$