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']