我想知道一個字符串是否以數字結尾(有/無小數)。如果結束,我想提取它。正則表達式的字符串結尾的數字?
"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