我正在使用正则表达式使用关键字' interest at the rate
'来查找值。来自interest at the rate of ten percent (10%)
我试过这个
re.compile(r'interest at the rate\s+((?:\w+(?:\s+|$)){3})').findall(r.decode('utf-8'))
并获得['of ten percent ']
。
现在,我试过
re.compile(r'interest at the rate of\s+((?:\w+(?:\s+|$)){3})').findall(r.decode('utf-8'))
但是,我得到的只是一个空值[]
。
如何从上面这行获得10号?我想在关键字后面捕获三到四个单词并获得整数值。
答案 0 :(得分:1)
如何从上面这行获得10号?我想在关键字后面捕获三到四个单词并获取整数值
所以,我知道您希望在关键字(= of ten percent
)和整数值(= {{1)之后得到三到四个字}})。我假设"关键字"是10
,就像你在模式中使用的那样。
然后,您可以使用
interest at the rate
请参阅Python demo。
<强>详情
import re
s = "interest at the rate of ten percent (10%)"
r = re.compile(r'interest at the rate (\w+(?:\s+\w+){2,3})\s*\((\d+)')
print(r.findall(s))
# => [('of ten percent', '10')]
- 关键字interest at the rate
- 第1组:一个或多个单词字符,然后是2个或3个1+空格序列,后跟1个单词字符(\w+(?:\s+\w+){2,3})
- 0+ whitespaces \s*
- \(
(
- 第2组:一个或多个数字。如果单词数量可以超过2或3,或者可以是1或0,请将(\d+)
替换为{2,3}
。
如果号码也可以是浮点数,请将*
替换为\d+
。
答案 1 :(得分:-1)
好的,如果我理解了这个问题,你可以使用以下
import re
value = "interest at the rate of ten percent (10%)"
regexString = r"^interest at the rate of ten percent \(([0-9]{2})%\)$"
result = re.findall(regexString, value, 0) # Zero is the flag for match all, you can omit this.
print(result)
这将返回['10']
。