我想知道一个字符串是否以数字结尾(有/无小数)。如果结束,我想提取它。正则表达式的字符串结尾的数字?
"Test1" => 1
"Test" => NOT FOUND
"Test123" => 123
"Test1.1" => 1.1
我错过了一些细节。
1.在数字之前,字符串可以包含特殊字符
2.它是单行而不是多行。 @"\d$"
:如果你想数字只用这一个(?<=[a-zA-Z]+)\d+([,.]\d+)?\b$
我想知道一个字符串是否以数字结尾(有/无小数)。如果结束,我想提取它。正则表达式的字符串结尾的数字?
"Test1" => 1
"Test" => NOT FOUND
"Test123" => 123
"Test1.1" => 1.1
我错过了一些细节。
1.在数字之前,字符串可以包含特殊字符
2.它是单行而不是多行。 @"\d$"
:如果你想数字只用这一个(?<=[a-zA-Z]+)\d+([,.]\d+)?\b$
使用这个表达式[a-zA-Z]+\d+([,.]\d+)?\b$
。使用http://regexpal.com/来尝试正则表达式。
当然,这只是告诉你,最后一个字符是一个数字。它不会捕获除最后一个字符以外的任何内容。为了捕获这个数字,只需要这个:@"\d*\.?\d+$"
。
如果您的字符串可能更复杂,例如“Test1.2 Test2”,并且您想要两个数字:@"\d*\.?\d+\b"
。
一个正则表达式以数字结尾的字符串
这不起作用 - 请参阅OP的最后一个示例 –
@JoannaTurban正则表达式也适用于最后一个示例。它只是检查字符串中的最后一个字符是否是数字。 –
@Esailija啊我误解了,我以为他想知道字符串是否以数字结尾。在那种情况下,他可以抓住整个绳子,是我的推理! –
给这个图案的尝试,
\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+)$
'@“( - [0-9] +(?:?:\。[0-9] + )?)$“' – Esailija
你对最后一个数字前面的字符串有什么期望 - 只是字母或基本上任何东西? –
字母,特殊字符 – Tilak