2017-02-25 46 views
0

我想使用正則表達式,更準確地說該指令從文本中提取一定長度的所有字符串查找特定長度的所有字符串:使用re.findall

words=re.findall('\w{3}',text)

在這裏,我得到長度爲3的所有字符串,但我想讓它更普遍,並有把其它號碼作爲輸入,而不是「3」的可能性,所以我有這樣的事情:

order = 5 #for example 
words = re.findall('\w{order}',text) 

此指令沒有按在我的情況下工作,但我只是想說明我的問題。

任何想法?感謝您的幫助

+2

're.findall(R'\瓦特{{{} }}'。format(order),text)'(或'r'\ w {%s}'%order') –

+0

@Rawing應該是'r'\ w {{}}} '。 – kennytm

+0

@kennytm良好的通話,謝謝。 –

回答

0

這裏是所有的這樣的方法:

方法1:

re.findall(r'\w{%s}' % (order), text) 

方法2:

re.findall(r'\w{'+str(order)+'}', text) 

方法3:

re.findall(r'\w{{{}}}'.format(order), text) 
1

提取物從正則表達式中表達文本使用單詞邊界錨\b一定長度的所有字符串:

text = ' ... another number as an input instead of the 3, so I would have something like this ' 
order = 5 #for example 
words = re.findall(r'\b\w{{{}}}\b'.format(order), text) 
print(words) 

輸出:

['input', 'would']