簡體   English   中英

如何使用正則表達式從字符串中提取數字?

[英]How can I extract a number out of a string using regex?

我有一條很長的線,它可以更長,但我決定把這部分線:

/ "},{"文本":"36"

我想從字符串中獲取數字。 或從整行中獲取特定於 char / 和文本之后的此數字:“36” 該行太長,無法在此處發布。

我試過這個:

private void GetNumber()
        {
            string subjectstring = "/ "},{"text":"36"";

            string resultString = Regex.Match(subjectstring, @"\d+").Value;
        }

問題是我在行的右側遇到了一些錯誤:

string subjectstring = "/ "},{"text":"36"";

我得到的錯誤截圖:

錯誤

好像你的問題實際上是2個問題。

1.為什么我在初始化字符串時會報錯"/ "},{"text":"36""

這是因為引號表示字符串序列的開始/結束。 由於您的字符串本身有多個引號,因此編譯器認為您想要結束該字符串並稍后再次啟動它,並且中間的一些字符可能只是在您的程序中隨機循環,這會導致編譯器錯誤。

要解決此問題,請在每個應該是值的一部分的引號前面使用\ ,以告訴編譯器您還沒有嘗試結束字符串。 在您的示例中,它應該如下所示: "/ \"},{\"text\":\"36\""

2. 如何使用 Regex 從字符串中提取數字?

無論通過正則表達式的格式如何,您是否只想在任何類型的字符串中獲取一個數字? 如果是這種情況,您所要做的就是:

var result = int.Parse(new Regex(@"\d+").Match("/ \"},{\"text\":\"36\"").Value); // Outputs 36 as an integer

但是,我強烈建議不要將正則表達式用於這樣的簡單任務,因為它們的性能非常高。 這是一個更好的方法: https://stackoverflow.com/a/15669520/9988162

如果您的格式一致,請更新您的問題,以便我們為其構建格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM