如何从句子中获取数据?
为例子 我有这句话
4 bedroom 2 bath, 1469 sq
然后我做了搜索词' bath'在句子中,但从那句话我想得到数字' 2'因为这是我的数据。
我怎样才能把数字' 2'从那句话?
谢谢
答案 0 :(得分:1)
您可以在捕获组中使用简单的正则表达式:
import re
s= "3 roof 4 bath"
search_word = "bath"
res = re.search(r'(\d+)\s*{0}'.format(re.escape(search_word)), s)
if res:
print(res.group(1))
请参阅Python demo
<强>详情:
(\d+)
- 第1组:一个或多个数字被捕获到第1组(注意:如果该数字可以包含逗号或句点,请使用[\d,.]+
代替\d+
,或者更多精确\d+(?:[,.]\d+)*
)\s*
- 0+ whitespaces {0}' - a placeholder for the search word whose chars are escaped with
re.escape()`以便匹配,即使其中有特殊的正则表达式字符要访问数字,请在匹配数据对象上使用.group(1)
。
答案 1 :(得分:0)
如果你总是有这样的结构:
N word N word, N word
您可以按空格“”拆分并获取2元素。
print str.split(sentence)[2]
答案 2 :(得分:0)
前瞻性断言的正则表达式:
re.search(r"[\d]+(?=\s+bath)", "3 roof 4 bath")
答案 3 :(得分:0)
对我来说明确答案是:
a = '4 bedroom 2 bath, 1469 sq'
regex = r'\b (\d*) (bath)\b'
b = re.search(regex, a).groups()
b[0]
2