正则表达式从字符串中获取数字

时间:2014-03-06 18:12:36

标签: python regex python-2.7 scrapy

首先我使用的是python 2.7

我有这些字符串的可能性:

3 paths

12  paths

12 path rooms

问题

获取没有文本的数字的reqular表达式是什么。

感谢

5 个答案:

答案 0 :(得分:2)

你可以用这个: 正则表达式= [\ d] *

答案 1 :(得分:2)

另一种方法是使用[0-9]而不是\ d

import re

def extract_number(string):
    r = re.compile('[0-9]+')
    return r.match(string).group()

答案 2 :(得分:2)

你说你只能使用scrapy方法,所以我想你是在追求:

hxs.select('//some/xpath/expression/text()').re(r'(\d+).*')

答案 3 :(得分:1)

(\d+).*\n用于提取数字,然后跳过其余部分。

number_finder = re.compile('(\d+).*\n') number_finder.findall(mystr)

将输出数值

的数组

示例:

In [3]: r = re.compile('(\d+).*\n') In [4]: r.findall('12 a \n 12 a \n') Out[4]: ['12', '12']

答案 4 :(得分:1)

要查找的正则表达式模式为\d。所以在python中你可以将它编码为:

pattern = re.compile(r'\d+')
result =  re.search(pattern, input_string)