如何在Python中分割中间的字符串
我正在使用BeautifulSoup从网站上抓取一些文本。我将scrape存储在一个变量中,这个变量是一个包含特殊字符、字母和数字的字符串,没有空格 例如:!012WR55wr” 我想做的是拆分这个字符串,这样我可以提取55并将其转换为整数,然后使用它来计算 我试图找到一个解决方案,但我在python中只找到了两种拆分字符串的方法。第一种方法是在字符串中的空格之间进行拆分,my不包含空格。第二种方法是在要拆分的字符串中插入#。因为我正在刮除文本,所以无法在包含刮除的变量中放置任何# 有没有办法从变量中提取数字55并将其类型设置为int 谢谢大家! 编辑: 谢谢大家的帮助。问题现在已经解决,下面是解决方案:如何在Python中分割中间的字符串,python,beautifulsoup,Python,Beautifulsoup,我正在使用BeautifulSoup从网站上抓取一些文本。我将scrape存储在一个变量中,这个变量是一个包含特殊字符、字母和数字的字符串,没有空格 例如:!012WR55wr” 我想做的是拆分这个字符串,这样我可以提取55并将其转换为整数,然后使用它来计算 我试图找到一个解决方案,但我在python中只找到了两种拆分字符串的方法。第一种方法是在字符串中的空格之间进行拆分,my不包含空格。第二种方法是在要拆分的字符串中插入#。因为我正在刮除文本,所以无法在包含刮除的变量中放置任何# 有没有办法从
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我正在抓取多个网站,一个网站上的数字可能在字符串的开头,另一个网站上的数字可能在字符串的结尾。一旦我从一个网站上抓取文本并将其打印到终端上,我可以查看它并说这两个数字中的哪一个是我需要的,然后我想提取它并将其存储在一个新的变量中。一旦我知道该号码在网站上的位置,该号码的位置将始终保持不变。谢谢,很抱歉回复太晚。正则表达式在这方面似乎工作得很好,但是它返回一个整数列表。我现在的问题是,我想对这个整数进行计算。有没有办法从列表中提取那个整数并将其存储在一个单独的变量中?我太傻了。。。我现在解决了我的问题。我将用我的解决方案更新原始帖子。非常感谢你的帮助!很高兴在这里,如果这完全解决了您的问题,请将我的答案标记为已接受答案