其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

python怎么通过正则表达式去剔除掉字符串最前/后面的连续的非数字段?

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 re

def 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", "?"))

11《Python 原生爬虫教程》使用正则表达式进行页面提取

上节课我们学习了如何使用 BeautifulSoup 来解析页面,这节课我们来学习下如何使用正则来解析页面。

  • 正则表达式的基本概念
  • 正则表达式基本语法
  • 正则表达式常用函数

通过学习正则表达式几个常用函数,可以根据需要对数据进行匹配筛选。


1. 正则表达式简介

在编写爬虫的过程中,我们需要解析网页的内容。那么作为文本解析利器的正则表达式当然可以运用到我们的爬虫开发中。其实页面解析过程无非是从海量的字符串中将我们所需要的数据匹配并剥离出来,所以在正式的爬虫开发中正则会经常被用到。

正则表达式是对字符串操作的逻辑公式。在提取网页的数据的时候,我们需要把源代码转换成字符串,然后通过正则表达式匹配想要的数据。

在我们开始使用正则表达式进行模式查找之前,我们需要先熟悉一下正则表达式里面的字符的基本含义,熟悉了它们之后,我们就可以很方便的书写一些正则表达式进行模式匹配了。


2. 正则表达式基本语法

正则表达式的字符和含义

3. 正则表达式的常用方法

我们开发爬虫使用的是 Python 语言,那么在 Python 中如何使用正则表达式呢?在 Python 中已经内置了正则表达式模块 rere 库是内置在 Python 中的,不需要我们进行安装,直接导入使用即可。

这里我们主要详细讲解一下 re 库中的几种常用方法。这几种方法也是会经常用在爬虫开发中的,只要掌握了这些种方法,基本上在爬虫开发中需要使用正则表达式的问题都可以解决。


3.1 re.findall

findall 方法是找到所有的符合规则的匹配内容,具体语法如下:

标签:

提交需求或反馈

Demand feedback