如何在Python中分割中间的字符串

如何在Python中分割中间的字符串,python,beautifulsoup,Python,Beautifulsoup,我正在使用BeautifulSoup从网站上抓取一些文本。我将scrape存储在一个变量中,这个变量是一个包含特殊字符、字母和数字的字符串,没有空格 例如:!012WR55wr” 我想做的是拆分这个字符串,这样我可以提取55并将其转换为整数,然后使用它来计算 我试图找到一个解决方案,但我在python中只找到了两种拆分字符串的方法。第一种方法是在字符串中的空格之间进行拆分,my不包含空格。第二种方法是在要拆分的字符串中插入#。因为我正在刮除文本,所以无法在包含刮除的变量中放置任何# 有没有办法从

我正在使用BeautifulSoup从网站上抓取一些文本。我将scrape存储在一个变量中,这个变量是一个包含特殊字符、字母和数字的字符串,没有空格

例如:!012WR55wr”

我想做的是拆分这个字符串,这样我可以提取55并将其转换为整数,然后使用它来计算

我试图找到一个解决方案,但我在python中只找到了两种拆分字符串的方法。第一种方法是在字符串中的空格之间进行拆分,my不包含空格。第二种方法是在要拆分的字符串中插入#。因为我正在刮除文本,所以无法在包含刮除的变量中放置任何#

有没有办法从变量中提取数字55并将其类型设置为int

谢谢大家!

编辑:

谢谢大家的帮助。问题现在已经解决,下面是解决方案:

import re
import requests
from bs4 import BeautifulSoup

url = "url"

url_response = requests.get(url)
url_content = BeautifulSoup(url_response.content, 'html5lib')

code = url_content.find('div', 'article_details').get_text()

print(code)
在我的例子中,它返回以下字符串:“”!At52R18wr“!” 现在为了提取我需要的号码,我使用了@Muluk提供的:

extracted_integers =  re.findall(r"\d+" , code) 
extracted_integers = [int(i) for i in extracted_integers]
这将返回列表中的两个整数52和18。在这种情况下,我对52号感兴趣,所以我删除了18号

del extracted_integers[-1]
最后,我想把整数存储在一个单独的变量中,这样我就可以对它进行计算了

for i in extracted_integers:
    value = i
value = int(value)

print(value)
产出:52


再次感谢你的帮助!第一次使用stackoverflow

您只需要正则表达式。您可以在python中导入re并开始使用它的函数,如search和findall,我可以通过一个示例向您解释这个过程

import re

sample_str = '''!012WR55wr"!.'''

extracted_integers =  re.findall(r"\d+" , sample_str) # extracting string with patterns like digits.
extracted_integers = [int(i) for i in extracted_integers] # converting string to integer
print(extracted_integers) # you can see all your integers from your string.
如果你想了解更多关于regEx的信息,你可以看看这个非常棒的博客-


如果你想用一些测试用例检查正则表达式,你可以使用这个在线工具-

re
-你说的“因为我正在刮取文本,所以我无法在包含刮取的变量中放置任何”是什么意思?试着发布你的代码,这样我们就可以看到你在做什么。它是基于一个特定的位置还是你寻找的字符串中的第二个数字系列?@JackFleeting这是我找到的拆分示例:txt=“你好,我的名字是彼得,我26岁”x=txt.split(,”)在本例中,打印(x)将插入应拆分文本的位置。在我的例子中,我不知道变量的内容是什么,它总是随机的,我想要得到的数字总是随机的different@JimmySmith我正在抓取多个网站,一个网站上的数字可能在字符串的开头,另一个网站上的数字可能在字符串的结尾。一旦我从一个网站上抓取文本并将其打印到终端上,我可以查看它并说这两个数字中的哪一个是我需要的,然后我想提取它并将其存储在一个新的变量中。一旦我知道该号码在网站上的位置,该号码的位置将始终保持不变。谢谢,很抱歉回复太晚。正则表达式在这方面似乎工作得很好,但是它返回一个整数列表。我现在的问题是,我想对这个整数进行计算。有没有办法从列表中提取那个整数并将其存储在一个单独的变量中?我太傻了。。。我现在解决了我的问题。我将用我的解决方案更新原始帖子。非常感谢你的帮助!很高兴在这里,如果这完全解决了您的问题,请将我的答案标记为已接受答案