Products
GG网络技术分享 2025-03-18 16:14 5
比如"daxxsd12a52d5sdaxxda"
怎么把首个数字的前面一段非数字(daxxsd)去掉
把末尾数字后面一段非数字(sdaxxda)去掉
并且把中间的非数字替换成自己想要的字符(比如?)
最终想要的结果:12?52?5
>>> import re>>> s = "daxxsd12a52d5sdaxxda">>> t = re.findall(r'\\d.+\\d',s)[0]>>> t'12a52d5'
>>> t = re.sub(r'\\D','?',t)>>> t'12?52?5'
>>>
一条语句比较麻烦,但也是可以做到的
>>> import re>>> a = 'daxxsd12a52d5sdaxxda'>>> b = re.sub(r'\\D*(\\d+)\\D(\\d+)\\D(\\d+)\\D*',r'\\1?\\2?\\3',a)>>> print(b)12?52?5
import redef remove_prefix_suffix(src, middle_char):
result = re.sub(r"^\\D*", "", src)
result = re.sub(r"\\D*$", "", result)
result = re.sub(r"\\D", middle_char, result)
return result
print(remove_prefix_suffix("daxxsd12a52d5sdaxxda", "?"))
上节课我们学习了如何使用 BeautifulSoup 来解析页面,这节课我们来学习下如何使用正则来解析页面。
通过学习正则表达式几个常用函数,可以根据需要对数据进行匹配筛选。
在编写爬虫的过程中,我们需要解析网页的内容。那么作为文本解析利器的正则表达式当然可以运用到我们的爬虫开发中。其实页面解析过程无非是从海量的字符串中将我们所需要的数据匹配并剥离出来,所以在正式的爬虫开发中正则会经常被用到。
正则表达式是对字符串操作的逻辑公式。在提取网页的数据的时候,我们需要把源代码转换成字符串,然后通过正则表达式匹配想要的数据。
在我们开始使用正则表达式进行模式查找之前,我们需要先熟悉一下正则表达式里面的字符的基本含义,熟悉了它们之后,我们就可以很方便的书写一些正则表达式进行模式匹配了。
我们开发爬虫使用的是 Python 语言,那么在 Python 中如何使用正则表达式呢?在 Python 中已经内置了正则表达式模块 re
,re
库是内置在 Python 中的,不需要我们进行安装,直接导入使用即可。
这里我们主要详细讲解一下 re
库中的几种常用方法。这几种方法也是会经常用在爬虫开发中的,只要掌握了这些种方法,基本上在爬虫开发中需要使用正则表达式的问题都可以解决。
findall 方法是找到所有的符合规则的匹配内容,具体语法如下:
Demand feedback