假設我有一個一至三位數字的序列,它們之間可以有任意數量的空格,並且假設這些數字在我可以反向引用的組內。我怎麼會這樣做呢?這裏是我到目前爲止正則表達式組中的零或更多空格
([\d\s*]{1,3})
我只是有點困惑,我是如何有匹配高達三位數的模式,有那麼之間的零個或多個空格,並保持其內的組。
無論如何,謝謝。
假設我有一個一至三位數字的序列,它們之間可以有任意數量的空格,並且假設這些數字在我可以反向引用的組內。我怎麼會這樣做呢?這裏是我到目前爲止正則表達式組中的零或更多空格
([\d\s*]{1,3})
我只是有點困惑,我是如何有匹配高達三位數的模式,有那麼之間的零個或多個空格,並保持其內的組。
無論如何,謝謝。
你可以這樣做:
((?:\d\s*){1,3})
說明:
((?:\d\s*)){1,3}
^ ^ define a non capturing group
^ a single digit
^ a space zero or more times
^ ^ capture that group (digit and following space pattern)
^ 1 to 3 times
你也可以這樣做:
^(\d\s*\d?\s*\d?\s*)
^ ^ capture group
^ one digit
^ zero or more spaces
^ optional digit
^ zero or more spaces
^^ etcetera.....
你可以繼續這有用嗎? 它確實做了我所需要的,我只是想了解它是如何做到的,因爲我對正則表達式有點新鮮。另外,有沒有辦法做到這一點,而不使用冒號? – user2965071
是的。 '(\ d)'是一個字符。 '\ b(w +)\ b'是一組字符。 – dawg
(\d{1,3}\s*)
應該得到你想要的,我想。它定義了一個由1-3位數字組成的組,以及在下一組數字之前出現的任何空格。如果你不想在組中包括空間,你可以使用(\d{1,3})\s*
'假設我有一到三位數字的序列,它們之間可以有任意數量的空格*' - 這隻能匹配1到3個數字,後面跟着任意數量的空格。之間沒有空格。 – dawg
哎呀,我會學習下次閱讀,我的錯誤:) –
模式'[\ d \ s *]'匹配一個數字或一個空格或一個文字'*' – dawg