我以爲我把它與[0-9]結合起來,但是當我運行它時只有一個數字。我需要正則表達式來只接受字符串中的數字
串去,例如:
1 note
1,234 notes
68,000 notes
我想它,所以它需要整數和遺漏了筆記部分和空間,也是逗號所以才完整號碼。
即使沒有逗號,[0-9]也只會取第一個字符串。
那麼如何只取號碼?
我以爲我把它與[0-9]結合起來,但是當我運行它時只有一個數字。我需要正則表達式來只接受字符串中的數字
串去,例如:
1 note
1,234 notes
68,000 notes
我想它,所以它需要整數和遺漏了筆記部分和空間,也是逗號所以才完整號碼。
即使沒有逗號,[0-9]也只會取第一個字符串。
那麼如何只取號碼?
[0-9]
表示0
和9
之間的任何一個字符。你正在尋找的是這些角色重複任意次數,但沒有其他角色應該在那裏。正確的寫法是[0-9]+
。
M+
,其中M是一些正則表達式規則相當於M M*
,其中*
表示0 or more occurrences
。因此M+
可以推斷爲由M
指定的部分的至少一次出現。
編輯:現在的問題還指出,應讀取整個數字,但逗號應排除在輸出。 AFAIK,這是不可能使用正則表達式完成的,因爲匹配的文本不能與存儲的文本不同。可能的解決方案是將,
添加到允許的字符列表中,並解析結果以便稍後刪除它們。
好吧,很酷的數字少於1000.但是,如果正則表達式中的逗號像1,234那樣,正則表達式會如何獲得數字?因爲我剛剛嘗試了19,000,而它只有19。是的,沒有biggy只能得到包含逗號的數字,因爲我可以在之後進行替換。 – programminglearner
@programminglearner將','添加到允許的字符列表應該可以工作。所以'[0-9,]'應該工作。請注意,這將匹配其他數字,例如'23,52,2,1'。你應該問問你自己是否會發生這種情況。如果需要,可以更多地改進正則表達式以限制其表達能力。 – therainmaker
編輯:好吧,我明白了:):[0-9] +,[0-9] + 感謝您的信息。 編輯:啊我看你的方式是更緊湊:)所以用這個。乾杯。 – programminglearner
你的意思是? '\ d +(?:,\ d +)*'? –