[英]How can I extract a substring from a string using regular expressions?
我們假設我有一個字符串“ABCDEF34GHIJKL”。 如何使用正則表達式從字符串中提取數字(在本例中為34)?
我對正則表達式知之甚少,雖然我很想學習所有關於它的知識,但時間限制迫使我只是想知道這個具體的例子是如何工作的。
任何信息將不勝感激!
謝謝
這是一個特定於語言的問題,但您沒有指定語言。 根據您之前提出的問題,雖然我會假設您認為這是一個C#語言問題。
對於這種情況,只需為數字寫一個正則表達式並將其應用於輸入。
var match = Regex.Match(input, "\d+");
if ( match.Success ) {
var number = match.Value;
}
取決於語言,但您想要與([0-9]+)
這樣的表達式匹配。 這將在字符串中找到(第一組)數字。 如果你的regexp引擎希望在字符串的開頭匹配,你需要添加.*?([0-9]+)
。
我同意冷靜([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以及一些使用后向引用的好例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.