2014-04-02 14 views
-1

我有一個像「something1 PP:222 something2」的字符串,我想從這個字符串中拾取222。一般來說,它可以是以PP開頭的任何整數:以下任何內容都由空格分隔。什麼是提取這種模式的正則表達式?我是新來的正則表達式,我掙扎如何使用正則表達式從字符串中提取整數

+1

這個問題似乎是脫離主題,因爲它只是要求代碼而不是解釋問題。 – Anonymous

回答

2

這應該工作(假設JavaScript語法,但易端口):

/PP: (\d+)/

例子:

var match = 'something1 PP: 222 something2'.match(/PP: (\d+)/); 

if (match) { 
    var num = match[1]; 
} 
1

您可以使用正則表達式這樣的模式:

/\s(\d+)\s/ 

其中\s是一個空格,(\d+)是一個捕獲組,捕獲至少一個數字,然後是另一個空白(按照您的示例)。在這個特定的例子中,在捕獲組周圍(在你的情況空間中)指定一個邊界是很重要的,因爲你不想捕獲該字符串末尾的數字,或者可能在字符串中彈出的其他數字。


在線正則表達式測試工具是當你正在學習非常有用的,看看regex101.com

+0

這不能滿足「先於PP:」的要求。也就是說,它會得到像「something1 XX:33 something2」這樣的字符串中的誤報。 – jmar777

+0

@ jmar777好點,我沒有注意到這個要求 –

相關問題