(是的,我知道有相关的正则表达式问题询问如何捕获两个字符之间的信息。我尝试过,但它们对我不起作用。我还尽可能深入地阅读了正则表达式教程。)
我有一段代码,它使用 BeautifulSoup 从网站上抓取一些信息,格式如下:汇率:1 USD = 60.50 INR
该字符串存储在名为“data”的变量中。我必须从该字符串中捕获“60.50”。我有这样的代码:
data = _funct()
rate = re.search("?<=\=)(.*?)(?=\I" , data)
print rate
这不起作用。我哪里出错了?
最佳答案
您可以使用像这样的简单正则表达式:
(\w+\.\w+)
<强> Working demo
正如您所看到的,正则表达式背后的想法是:
( ... ) Use parentheses to capture the content
\w+\.\w+ any alphanumeric followed by a dot plus more alphanumeric.
如果您只想捕获数字,可以使用:
\d+\.\d+
如果您查看 python 代码生成器,您可以获得以下代码:
import re
p = re.compile(ur'(\w+\.\w+)')
test_str = u"Exchange rate: 1 USD = 60.50 INR"
re.search(p, test_str)
关于捕获 2 个字符 ('=' 和 'I' 之间信息的 Python 正则表达式代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28214868/