python应聘(3)——python正则表达式入门(1)初级篇

超详细:正则表达式从入门到入门 本文章首发于公众号Python for Finance链接:https://mp.weixin.qq.com/s/boLdKv1L31377dLOKQ6irw正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 阅读详情

Python 正则表达式入门(初级篇)


引子

首先说 正则表达式是什么?

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
引用自维基百科https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F

定义是定义,太正经了就没法用了。我们来举个栗子:假如你在写一个爬虫,你得到了
一个网页的HTML源码。其中有一段

<html><body><h1>hello world<h1></body></html>

你想要把这个hello world提取出来,但你这时如果只会python 的字符串处理,那么第一反应可能是

s = <html><body><h1>hello world<h1></body></html>
start_index = s.find('<h1>')

然后从这个位置向下查找到下一个<h1>出现这样做未尝不可,但是很麻烦不是吗。需要考虑多个标签,一不留神就多匹配到东西了,而如果想要非常准确的匹配到,又得多加循环判断,效率太低。

这时候,正则表达式就是首选的帮手。

干货开始


入门级别


接着说我们刚才那个例子。我们如果拿正则处理这个表达式要怎么做呢?

import re

key = r"<html><body><h1>hello world<h1></body></html>"#这段是你要匹配的文本
p1 = r"(?<=<h1>).+?(?=<h1>)"#这是我们写的正则表达式规则,你现在可以不理解啥意思
pattern1 = re.compile(p1)#我们在编译这段正则表达式
matcher1 = re.search(pattern1,key)#在源文本中搜索符合正则表达式的部分
print matcher1.group(0)#打印出来

你可以尝试运行上面的代码,看看是不是和我们想象的一样(博主是在python2.7环境下)发现代码挺少挺简单?往下看。而且正则表达式实际上要比看起来的那种奇形怪状要简单得多。

首先,从最基础的正则表达式说起。
假设我们的想法是把一个字符串中的所有"python"给匹配到。我们试一试怎么做

import re

key = r"javapythonhtmlvhdl"#这是源文本
p1 = r"python"#这是我们写的正则表达式
pattern1 = re.compile(p1)#同样是编译
matcher1 = re.search(pattern1,key)#同样是查询
print matcher1.group(0)

看完这段代码,你是不是觉得:卧槽?这就是正则表达式?直接写上去就行?
确实,正则表达式并不像它表面上那么奇葩,如果不是我们故意改变一些符号的含义时,你看到的就是想要匹配的。
所以,先把大脑清空,先认为正则表达式就是和想要匹配的字符串长得一样。在之后的练习中我们会逐步进化


初级


0.无论是python还是正则表达式都是区分大小写的,所以当你在上面那个例子上把"python"换成了"Python",那就匹配不到你心爱的python了。

1.重新回到第一个例子中那个<h1>hello world<h1>匹配。假如我像这么写,会怎么样?

import re

key = r"<h1>hello world<h1>"#源文本
p1 = r"<h1>.+<h1>"#我们写的正则表达式,下面会将为什么
pattern1 = re.compile(p1)
print pattern1.findall(key)#发没发现,我怎么写成findall了?咋变了呢?

有了入门级的经验,我们知道那两个<h1>就是普普通通的字符,但是中间的是什么鬼?
.字符在正则表达式代表着可以代表任何一个字符(包括它本身)
findall返回的是所有符合要求的元素列表,包括仅有一个元素时,它还是给你返回的列表。

机智如你可能会突然问:那我如果就只是想匹配"."呢?结果啥都给我返回了咋整?在正则表达式中有一个字符\,其实如果你编程经验较多的话,你就会发现这是好多地方的“转义符”。在正则表达式里,这个符号通常用来把特殊的符号转成普通的,把普通的转成特殊的23333(并不是特殊的“2333”,写完才发现会不会有脑洞大的想歪了)。
举个栗子,你真的想匹配"chuxiuhong@hit.edu.cn"这个邮箱(我的邮箱),你可以把正则表达式写成下面这个样子:

import re

key = r"afiouwehrfuichuxiuhong@hit.edu.cnaskdjhfiosueh"
p1 = r"chuxiuhong@hit\.edu\.cn"
pattern1 = re.compile(p1)
print pattern1.findall(key)

发现了吧,我们在.的前面加上了转义符\,但是并不是代表匹配“\.”的意思,而是只匹配“.”的意思!
不知道你细不细心,有没有发现我们第一次用.时,后面还跟了一个+?那这个加号是干什么的呢?
其实不难想,我们说了“.字符在正则表达式代表着可以代表任何一个字符(包括它本身)”,但是"hello world"可不是一个字符啊。
+的作用是将前面一个字符或一个子表达式重复一遍或者多遍。
比方说表达式“ab+”那么它能匹配到“abbbbb”,但是不能匹配到"a",它要求你必须得有个b,多了不限,少了不行。你如果问我有没有那种“有没有都行,有多少都行的表达方式”,回答是有的。
*跟在其他符号后面表达可以匹配到它0次或多次
比方说我们在王叶内遇到了链接,可能既有http://开头的,又有https://开头的,我们怎么处理?

import re

key = r"http://www.nsfbuhwe.com and https://www.auhfisna.com"#胡编乱造的网址,别在意
p1 = r"https*://"#看那个星号!
pattern1 = re.compile(p1)
print pattern1.findall(key)

输出

['http://', 'https://']

2.比方说我们有这么一个字符串"cat hat mat qat",你会发现前面三个是实际的单词,最后那个是我胡编乱造的(上百度查完是昆士兰英语学院的缩写= =)。如果你本来就知道"at"前面是c、h、m其中之一时这才构成单词,你想把这样的匹配出来。根据已经学到的知识是不是会想到写出来三个正则表达式进行匹配?实际上不需要。因为有一种多字符匹方式
[]代表匹配里面的字符中的任意一个
还是举个栗子,我们发现啊,有的程序员比较过分,,在<html></html>这对标签上,大小写混用,老害得我们抓不到想要的东西,我们该怎么应对?是写16*16种正则表达式挨个匹配?no

import re

key = r"lalala<hTml>hello</Html>heiheihei"
p1 = r"<[Hh][Tt][Mm][Ll]>.+?</[Hh][Tt][Mm][Ll]>"
pattern1 = re.compile(p1)
print pattern1.findall(key)

输出

['<hTml>hello</Html>']

我们既然有了范围性的匹配,自然有范围性的排除。
[^]代表除了内部包含的字符以外都能匹配
还是cat,hat,mat,qat这个例子,我们想匹配除了qat以外的,那么就应该这么写:

import re

key = r"mat cat hat pat"
p1 = r"[^p]at"#这代表除了p以外都匹配
pattern1 = re.compile(p1)
print pattern1.findall(key)

输出
为了方便我们写简洁的正则表达式,它本身还提供下面这样的写法

正则表达式代表的匹配字符
[0-9]0123456789任意之一
[a-z]小写字母任意之一
[A-Z]大写字母任意之一
\d等同于[0-9]
\D等同于[^0-9]匹配非数字
\w等同于[a-z0-9A-Z_]匹配大小写字母、数字和下划线
\W等同于[^a-z0-9A-Z_]等同于上一条取非

3.介绍到这里,我们可能已经掌握了大致的正则表达式的构造方式,但是我们常常会在实战中遇到一些匹配的不准确的问题。比方说:

import re

key = r"chuxiuhong@hit.edu.cn"
p1 = r"@.+\."#我想匹配到@后面一直到“.”之间的,在这里是hit
pattern1 = re.compile(p1)
print pattern1.findall(key)

输出结果

['@hit.edu.']

呦呵!你咋能多了呢?我理想的结果是@hit.,你咋还给我加量了呢?这是因为正则表达式默认是“贪婪”的,我们之前讲过,“+”代表是字符重复一次或多次。但是我们没有细说这个多次到底是多少次。所以它会尽可能“贪婪”地多给我们匹配字符,在这个例子里也就是匹配到最后一个“.”。
我们怎么解决这种问题呢?只要在“+”后面加一个“?”就好了。

import re

key = r"chuxiuhong@hit.edu.cn"
p1 = r"@.+?\."#我想匹配到@后面一直到“.”之间的,在这里是hit
pattern1 = re.compile(p1)
print pattern1.findall(key)

输出结果

['@hit.']

加了一个“?”我们就将贪婪的“+”改成了懒惰的“+”。这对于[abc]+,\w*之类的同样适用。

小测验:上面那个例子可以不使用懒惰匹配,想一种方法得到同样的结果

**个人建议:在你使用"+","*"的时候,一定先想好到底是用贪婪型还是懒惰型,尤其是当你用到范围较大的项目上时,因为很有可能它就多匹配字符回来给你!!!**

为了能够准确的控制重复次数,正则表达式还提供
{a,b}(代表a<=匹配次数<=b)

还是举个栗子,我们有sas,saas,saaas,我们想要sas和saas,我们怎么处理呢?


import re

key = r"saas and sas and saaas"
p1 = r"sa{1,2}s"
pattern1 = re.compile(p1)
print pattern1.findall(key)

输出

['saas', 'sas']

如果你省略掉{1,2}中的2,那么就代表至少匹配一次,那么就等价于?
如果你省略掉{1,2}中的1,那么就代表至多匹配2次。

下面列举一些正则表达式里的元字符及其作用

元字符说明
.代表任意字符
|逻辑或操作符
[ ]匹配内部的任一字符或子表达式
[^]对字符集和取非
-定义一个区间
\对下一字符取非(通常是普通变特殊,特殊变普通)
*匹配前面的字符或者子表达式0次或多次
*?惰性匹配上一个
+匹配前一个字符或子表达式一次或多次
+?惰性匹配上一个
?匹配前一个字符或子表达式0次或1次重复
{n}匹配前一个字符或子表达式
{m,n}匹配前一个字符或子表达式至少m次至多n次
{n,}匹配前一个字符或者子表达式至少n次
{n,}?前一个的惰性匹配
^匹配字符串的开头
\A匹配字符串开头
$匹配字符串结束
[\b]退格字符
\c匹配一个控制字符
\d匹配任意数字
\D匹配数字以外的字符
\t匹配制表符
\w匹配任意数字字母下划线
\W不匹配数字字母下划线


参考博客:https://www.cnblogs.com/chuxiuhong/p/5885073.html

自学Python爬虫简单入门到进阶(一):正则表达式+lxml+requests+Beautiful Soup+基础 网络爬虫(又被称为网页蜘蛛、网络机器人,在FOAF社区中,更经常地称为网页追逐者)是一种按照一定的规则,自动抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这些问题往往会困扰到学习爬虫的小伙伴。 今天给大家分享99篇【Python爬虫】相关精选学习资料,其中... 阅读详情

相关推荐

Python面试题_初级版

1.如何在一个函数内部修改全局变量 2.字典如何删除键 和 合并两个字典 3.谈下python的GIL 4.Python列表去重 5.fun(args,**kwargs)中的args,**kwargs什么意思? 6.python2和python3的range(100)的区别

AudiA6LV6的博客 803

Python 正则表达式入门(初级篇)

Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写。 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串...

weixin_30873847的博客 777

Python正则表达式与网络爬虫实战技巧

正则表达式是文本处理的核心工具,通过特定语法模式实现高效字符串匹配。Python的re模块提供了完整的正则支持,包括分组捕获、非贪婪匹配等高级特性。在网络爬虫开发中,正则表达式常与XPath、BeautifulSoup等技术结合,用于网页内容提取和数据清洗。合理运用正则能解决90%的数据抓取需求,特别是在处理动态生成的JSON数据或非结构化文本时优势明显。本文通过电商价格监控等实际案例,演示如何构建高可用的爬虫系统,并分享反爬策略、性能优化等工程实践经验。

weixin_30932215的博客 447

转: python 正则表达式

http://blog.youkuaiyun.com/smilelance/article/details/6529950 1.Python正则式的基本用法 import re p = re.compile(r'abc*') p.match(s) # 注意:match 只匹配 开头或结尾, 如果不想这样, 请用search # 也可以 re.match(r'abc*', s) ...

weixin_30386713的博客 545

c#正则表达式

【代码】c#正则表达式。

zhangzhechun的专栏 425

34、Python 正则表达式:高效数据处理的利器

本文深入介绍了Python正则表达式在高效数据处理中的关键作用,通过对比传统字符串处理与正则表达式的代码实现,展示了其在简洁性和效率上的显著优势。文章详细讲解了正则表达式的核心概念,包括元字符、字符类、量词、分组以及前瞻和后顾断言,并结合网络自动化等实际应用场景,提供了丰富的代码示例。同时,还推荐了多种学习正则表达式的方法和工具,帮助开发者系统掌握这一强大技能,提升数据处理能力。

49

正则表达式教程: 开始

原文:Regular Expressions Tutorial: Getting Started 作者:Tom Elliott 译者:kmyhy 在这篇教程中,你将学习如何在 iOS app 中使用 Swift 4.2 实现正则表达式。 更新说明:Tom Elliott 将本教程升级至 Swift 4.2。原文作者是 James Frost。 正则表达式基础 如果你没有听过正则表达式——也...

kmyhy的专栏 1861

三维视觉智能焊接系统:免示教技术的工业应用实践

本文深入探讨了三维视觉智能焊接系统中免示教技术的工业应用实践。该系统通过三维视觉相机实时扫描工件,自动识别焊缝并生成轨迹,将产线换型时间从数小时缩短至几分钟,显著提升了生产柔性。文章详细解析了其核心硬件、算法及工厂部署流程,并展望了与数字孪生、工艺智能化融合的未来趋势。

weixin_29091105的博客 432

python正则库安装_python中正则表达式regex库的使用

python中内置了re模块,可以根据正则表达式处理字符串,对于一些问题,使用regex库可以更方便的解决。安装:sudopipinstallregex我使用的版本为python2.7,在处理unicode字符串时需要指定字符编码,python3需要进行相应修改。载入文本:f=codecs.open(PATH,'r','utf-8')lines=f.readlines()通过pand...

weixin_39618121的博客 4128

P450酶催化循环的Amber-Gromacs混合模拟实战:从血红素加氧到产物释放

本文详细介绍了针对P450酶完整催化循环的Amber-Gromacs混合模拟实战策略。通过Amber为关键氧合血红素中间体(CPDI)构建精确力场,再利用Gromacs的高效GPU加速进行长时间尺度动力学模拟,完整覆盖从底物结合到产物释放的催化过程,为研究酶催化机制提供了强大的计算工具。

weixin_29201859的博客 316

保姆级避坑指南:用Docker在Ubuntu 22.04上部署Isaac Sim 5.1.0,搞定宇树G1仿真环境

本文提供了一份详细的保姆级避坑指南,帮助用户在Ubuntu 22.04上通过Docker部署Isaac Sim 5.1.0,并成功搭建宇树G1仿真环境。文章涵盖了环境准备、Docker与NVIDIA容器工具包的配置、Isaac Sim镜像的定制化拉取与配置,以及宇树G1仿真环境的实战调试,旨在帮助开发者高效解决部署过程中的常见问题。

weixin_33728268的博客 208

Java、Python哪家强?十万条应聘数据告诉你(含源代码)——网络爬虫第三天 -----独家秘方,限时删除

职位网页分析自动翻页功能: 第一页网址: https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&...

程序员小哲的博客 6227

C#中的Chart控件——当数据源很多时可以显示进度条拉动观察,也可以记录到后台文本详细对照

C#中的Chart控件——当数据源很多时可以显示进度条拉动观察,也可以记录到后台文本详细对照下面进行详细步骤说明,感兴趣的同学可以看一下: 1简单示例(一条线): 2.数据源随着时间不断变化,进度条变化 。多条线: 3.看在整段时期内的数据大体图(消去或出现)进度条: 4.后台将时刻记录变化记录到一个txt文本里以供详细校验: 话不多说上码: using System; using Sys...

帅boy的博客 4309

python sort函数返回值_即将开始秋招你准备好了吗?送你六道Python面试题,助你轻松通过...

炎热的夏季,即将过去,而秋季的秋招,正迎面而来,我们苦学Python编程,而面对秋招的压力,如何才能成功博得招聘者的青睐?这六道面试题送给你,为你应聘面试保驾护航。简述Django的ormORM,全拼Object-Relation Mapping,意为对象-关系映射实现了数据模型与数据库的解耦,通过简单的配置就可以轻松更换数据库,而不需要修改代码只需要面向对象编程,orm操作本质上会根据对接的数据...

weixin_31265041的博客 91

Win10内网离线安装NET3.5,绝对成功,保姆级

今天工作安装工具软件套装3.5组件!也在csdn上找了很多方法躺了很多坑,我总结如下! 其实就一条,什么版本的win10装什么版本的net3.5 我的电脑是1909版本,用2004H2的镜像是没有用的,dism组件报错8024402C 所以我下载1909镜像挂在虚拟光驱 ,管理员模式下powershell dism.exe /online /enable-feature /featurename:NetFX3 /Source:E:\sources\sxs dism.exe /online /en..

唉呀妈呀脑瓜疼 6万+

Python爬虫实战:逆向分析+异步技术高效抓取微信公众号文章

逆向突破:解析公众号核心接口参数,破解登录态与加密规则;高性能:异步协程+连接池,单进程日均抓取1000+篇文章;高稳定性:自动刷新登录态、IP代理轮换,无人工干预持续运行;高完整性:覆盖文章全量字段,清洗后可直接用于数据分析。接入消息队列(Kafka),实现分布式多公众号并行爬取;增加文章配图下载模块,完整存档多媒体内容;接入Elasticsearch,实现文章全文检索与关键词分析。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3263

Python正则表达式面试题分析总结

这些面试题不仅考察了应聘者对正则表达式基本概念的理解,还涉及到了正则表达式在实际应用中的灵活运用。掌握正则表达式对于处理字符串相关的问题至关重要,是Python编程中不可或缺的一部分。模块展开,考察的是应聘者对于正则表达式的理解、使用以及在实际问题中的应用能力。Python正则表达式面试题主要围绕Python内置的。

学无止境,止于至善 514

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】

打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。

CodingCos的博客 2049

python 爬虫自学要多久

a

D0126_的博客 931

12、无人机系统的建模与仿真

本文深入探讨了无人机系统的建模与仿真技术,涵盖其发展需求、历史演变、动力学建模方法、常用参考框架与状态变量表示,并分析了在控制系统设计、操作员培训和子系统测试中的关键应用。文章还介绍了不同类型无人机(固定翼、旋翼、混合翼)在建模与仿真中的差异,提出了多学科融合、高精度实时仿真及VR/AR技术等未来发展趋势,并给出了实际建模与仿真的标准操作流程,为无人机系统的设计与优化提供了全面的技术支持与展望。

websocket5live的博客 197

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python list去重_即将开始秋招你准备好了吗?送你六道Python面试题,助你轻松通过...

炎热的夏季,即将过去,而秋季的秋招,正迎面而来,我们苦学Python编程,而面对秋招的压力,如何才能成功博得招聘者的青睐?这六道面试题送给你,为你应聘面试保驾护航。简述Django的ormORM,全拼Object-Relation Mapping,意为对象-关系映射实现了数据模型与数据库的解耦,通过简单的配置就可以轻松更换数据库,而不需要修改代码只需要面向对象编程,orm操作本质上会根据对接的数据...

weixin_39558317的博客 152

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【优快云软件工程师能力认证学习精选】python | 史上最全的正则表达式

优快云软件工程师能力认证(以下简称C系列认证)是由中国软件开发者网优快云制定并推出的一个能力认证标准。C系列认证历经近一年的实际线下调研、考察、迭代、测试,并梳理出软件工程师开发过程中所需的各项技术技能,结合企业招聘需求和人才应聘痛点,基于公开、透明、公正的原则,甑别人才时确保真实业务场景、全部上机实操、所有过程留痕、存档不可篡改。 我们每天将都会精选优快云站内技术文章供大家学习,帮助大家系统化学习IT技术。 import re re.match #从开始位置开始匹配,如果开头没有则无 re..

优快云高校俱乐部官方博客 4311

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

第1章 Python基础

目录1.1 Python语言的简介1.1.1 Python语言的起源1.1.2 Python语言的发展1.1.3 Python语言的特征1.1.4 Python语言的应用领域 1.1 Python语言的简介 1.1.1 Python语言的起源         Python的创始人为Guido van Rossum(荷兰人,见图)。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位,由于当时编程语言比较复杂,因此Gu

Angel_Mirai的博客 206

秋招在即,大厂来袭!这份Python面试手册,Github标星3k+!

作者| GitPython来源| GitPython秋招是公司大量招收应届毕业生的时候。如果你错过了秋招,那么将要面临严酷的春招。春招已经是一个年度校园招聘计划的后半截,这种时候可挑选的...

weixin_43606419的博客 263

应聘python开发工程师_求职意向:Python工程师

个人信息姓名:黄建达  性别:男   出生日期:1995/04/04  籍贯:河南电子邮件:jianda_0404@163.com  个人博客:minehotpepper.com电话:18804621889  英语:CET4  状态:随时到岗教育背景2013/08~2017/06  毕业院校:哈尔滨理工大学  专业:物联网工程专业专业技能掌握:基本的数据结构和算法熟悉 :C++、Python...

weixin_39765588的博客 267

正则表达式

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34102807的博客 77
上一篇: python应聘(2)——容易采坑的round() 函数
下一篇: win10安装lightgbm
voidfaceless
博客等级 码龄10年 100粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值