2010-04-02 146 views
1

讓我們說我有一個字符串「ABCDEF34GHIJKL」。我如何使用正則表達式從字符串中提取數字(在本例中爲34)?如何使用正則表達式從字符串中提取子字符串?

我對正則表達式知之甚少,雖然我很想了解所有知識,但時間限制迫使我只是想知道這個具體示例如何工作。

任何信息將不勝感激!

感謝

+0

您使用RexEx時使用哪種語言? – 2010-04-02 21:14:37

+0

我使用的是javascript – 2010-04-26 16:34:16

回答

0

取決於語言,但要搭配像([0-9]+)的表達式。這將在字符串中找到(第一組)數字。如果您的正則表達式引擎希望在字符串的起始處開始匹配,則需要添加.*?([0-9]+)

4

這是一個非常特定於語言的問題,但您沒有指定一種語言。根據之前提出的問題,儘管我會假設你的意思是這是一個C#語言問題。

對於這種情況,只需編寫一個數字的正則表達式並將其應用於輸入。

var match = Regex.Match(input, "\d+"); 
if (match.Success) { 
    var number = match.Value; 
} 
0

我calmh ([0-9]+)認同是最主要的事情需要擔心。但是,您可能想要注意的是,在很多語言中,您需要使用反向引用(通常爲\\1\1)來獲取該值。例如

"ABCDEF34GHIJKL".sub(/^.*?([0-9]+).*$/, "\\1") 

但是,Ruby中的一個更好的解決方案是以下內容,並且還會匹配字符串中的多個數字。

"ABCDEF34GHIJ1001KL".scan(/[0-9]+/) { |m| 
    puts m 
} 

# Outputs: 
34 
1001 

大多數語言都有某種類似的方法。這裏有一些不同語言的例子,這裏有http://www.regular-expressions.info/tools.html以及一些使用的反向引用的好例子。

相關問題