我有以下格式此配置文件:解析配置文件值
ALPHA=123456789
BETA=12345
GAMMA=123467
,我想獲得的數值只有BETA(所以12345)使用正則表達式的。 我試圖
BETA=[^a-zA-Z0-9]+([0-9]+)
,但它不工作。 有什麼建議嗎?
編輯:我正在使用它的JavaScript。我正在寫肉桂延伸。
我有以下格式此配置文件:解析配置文件值
ALPHA=123456789
BETA=12345
GAMMA=123467
,我想獲得的數值只有BETA(所以12345)使用正則表達式的。 我試圖
BETA=[^a-zA-Z0-9]+([0-9]+)
,但它不工作。 有什麼建議嗎?
編輯:我正在使用它的JavaScript。我正在寫肉桂延伸。
所有你需要的是這樣的:
BETA=(\d+)
(這是一樣的BETA=([0-9]+)
)
爲了得到公正的數字部分,使用獲得的第一個捕獲組的語言的方法(在例如,Perl會在匹配成功後包含在$1
中)。
您的正則表達式(BETA=[^a-zA-Z0-9]+([0-9]+)
)搜索BETA =,然後至少一個字符不是字母或數字,然後是一個或多個數字。
這會失敗,因爲您在等號後沒有「至少一個不是字母或數字的字符」。
但它發現整條線!我只想獲得包含BETA – pattern23 2013-02-24 01:03:38
@ pattern23的行中的數值,'\ d +'周圍的括號僅將數字部分放入捕獲組中。您需要使用適當的機制來獲取第一個捕獲組,而不是整個匹配(如果您需要幫助,請更新您的問題以指定您正在使用的語言 - 這樣做的方式取決於語言) 。 – 2013-02-25 08:36:16
涉及哪種語言?也許有一些最正確的解決方案比正則表達式 – 2013-02-22 14:19:24
正則表達式語法在實現之間可以高度可變(實際上是擴展)。通常和'\(* regexp * \)'表示匹配。例如,J.T. Blum的回答非常接近可以運作的sed表達式。但是,sputnick的要求是一個很好的要求。你在做什麼語言/程序? – 2013-02-24 14:20:00
我正在使用JavaScript – pattern23 2013-02-25 15:51:17