讓我們說我有一個字符串「ABCDEF34GHIJKL」。我如何使用正則表達式從字符串中提取數字(在本例中爲34)?如何使用正則表達式從字符串中提取子字符串?
我對正則表達式知之甚少,雖然我很想了解所有知識,但時間限制迫使我只是想知道這個具體示例如何工作。
任何信息將不勝感激!
感謝
讓我們說我有一個字符串「ABCDEF34GHIJKL」。我如何使用正則表達式從字符串中提取數字(在本例中爲34)?如何使用正則表達式從字符串中提取子字符串?
我對正則表達式知之甚少,雖然我很想了解所有知識,但時間限制迫使我只是想知道這個具體示例如何工作。
任何信息將不勝感激!
感謝
取決於語言,但要搭配像([0-9]+)
的表達式。這將在字符串中找到(第一組)數字。如果您的正則表達式引擎希望在字符串的起始處開始匹配,則需要添加.*?([0-9]+)
。
這是一個非常特定於語言的問題,但您沒有指定一種語言。根據之前提出的問題,儘管我會假設你的意思是這是一個C#語言問題。
對於這種情況,只需編寫一個數字的正則表達式並將其應用於輸入。
var match = Regex.Match(input, "\d+");
if (match.Success) {
var number = match.Value;
}
我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以及一些使用的反向引用的好例子。
您使用RexEx時使用哪種語言? – 2010-04-02 21:14:37
我使用的是javascript – 2010-04-26 16:34:16