我有這樣的正則表達式:我怎樣才能做到這個正則表達式?
"\w{4}[A-D]{1}[a-d]*\s*"
我怎麼能重複[A-D]{1}[a-d]*\s*
幾次的東西,如*
的一部分嗎?
所以,如果我有表達:
"Bed0Dabc Babc Cabb99rrAbaaaa Daa6ab"
正則表達式會給我:
"Bed0Dabc Babc Cabb"
"99rrAbaaaa Daa"
我有這樣的正則表達式:我怎樣才能做到這個正則表達式?
"\w{4}[A-D]{1}[a-d]*\s*"
我怎麼能重複[A-D]{1}[a-d]*\s*
幾次的東西,如*
的一部分嗎?
所以,如果我有表達:
"Bed0Dabc Babc Cabb99rrAbaaaa Daa6ab"
正則表達式會給我:
"Bed0Dabc Babc Cabb"
"99rrAbaaaa Daa"
你的正則表達式是無效的,並在啓動缺少「\」,您想要的輸出也無效,第二個字符串應該是「99rrAbaaaa Daa」。
我相信你的意思是羣體,這是一個非常基本的概念,但是,你應該使用它們之前瞭解更多關於正則表達式。 所需的正則表達式:
\w{4}([A-D][a-d]*\s*)+
不,我不想和團隊一起做...你有另一種解決方案嗎? – user2314914 2014-11-04 14:04:27
使用'\瓦特{4}(?:[A-d] [A-d] * \ S *)+'使用非捕獲組。 – Matthias 2014-11-04 14:07:49
我無法想象爲什麼你不想和團體一起做,請解釋一下。 – Rusty 2014-11-04 14:08:37
您應該\s
添加到的字符集。
import re
data = 'Bed0Dabc Babc Cabb99rrAbaaaa Daa6ab'
pattern = r'\w{4}(?:[A-D][a-d\s]*)+'
matches = re.findall(pattern, data)
其結果是:
['Bed0Dabc Babc Cabb', '99rrAbaaaa Daa']
的?:
在組的開始定義了一個非捕獲基團。如果你忽略它,你的結果將如下所示。
['Cabb', 'Daa']
什麼是你期望的輸出? – 2014-11-04 13:47:24
示例輸入完全不正則表達式匹配:1.應該正則表達式開始'\ w'(以匹配任何字母數字)? 2.最後一個數字沒有任何匹配。 – Richard 2014-11-04 13:51:32
你可以擺脫{1}爲「正好一個匹配」是默認無論如何,如果你沒有一個量詞。 – 2014-11-04 13:53:05