首页 文章 精选 留言 我的

精选列表

搜索[JavaScript库],共10000篇文章
优秀的个人博客,低调大师

Python正则表达式re库的使用

指导思想:正则表达式只是一个工具,学会其中一种使用方法即可 1. ()和re.findall结合使用 ({}{})中第一个大括号替换为.则表示匹配所有字符,替换为[]则表示匹配中括号内限定的字符; 第二个大括号替换为*则表示匹配长度为>=0,替换为+则表示匹配长度为>=1,替换为空则表示匹配长度为1 (.*)表示匹配任意长度的所有字符 ([0-9]*)表示匹配任意长度的数字 ([0-9,a-z])表示匹配长度为1的数字和小写字母 re.findall函数需要传入2个参数,第1个参数是正则表达式,第2个参数是要进行搜索的源字符串。 re.findall函数返回结果的数据类型为列表,列表中的第1个元素的数据类型为元祖。 示例代码如下: import re if __name__ == "__main__": sourceStr = "11房5厅8卫" sourceStr2 = "a房b厅3卫" pattern_all = "(.*)房(.*)厅(.*)卫" pattern_number = "([0-9]*)房([0-9]*)厅([0-9]*)卫" pattern_numberAndLetter = "([0-9,a-z])房([0-9,a-z])厅([0-9,a-z])卫" print("正则表达式找出中间的字符:") result = re.findall(pattern_all, sourceStr) print(result,type(result),type(result[0])) print(re.findall(pattern_all,sourceStr2)) print("正则表达式找出中间的数字") print(re.findall(pattern_number,sourceStr)) print(re.findall(pattern_number,sourceStr2)) print("正则表达式找出中间的数字和字母") print(re.findall(pattern_numberAndLetter, sourceStr)) print(re.findall(pattern_numberAndLetter, sourceStr2)) 上面一段代码的运行结果如下: 正则表达式找出中间的字符: [('11', '5', '8')] <class 'list'> <class 'tuple'> [('a', 'b', '3')] 正则表达式找出中间的数字 [('11', '5', '8')] [] 正则表达式找出中间的数字和字母 [('1', '5', '8')] [('a', 'b', '3')] 2. 正则表达式中的元字符 \s 用于匹配单个空格符,包括tab键和换行符; \S 用于匹配除单个空格符之外的所有字符; \d 用于匹配从0到9的数字; \w 用于匹配字母,数字或下划线字符; \W 用于匹配所有与\w不匹配的字符; . 用于匹配除换行符之外的所有字符。 例如上一节中的([0-9]*)与([\d]*)作用相同 3. ()和re.search结合使用 re.search函数需要传入2个参数,第1个参数是正则表达式,第2个参数是要进行搜索的源字符串。 re.search函数返回结果的数据类型是sre.SRE_Match对象,span=(3,9)是匹配结果的索引,从索引3开始,不包括索引9。 把re.search函数返回结果赋值给result,通过result.group函数获取匹配结果,result.group函数需要传入1个参数,参数的数据类型为无符号整型,参数为0时,为正则表达式匹配到的长句内容;参数为1时,为正则表达式匹配到的第1个小括号中的内容;参数为2时,为正则表达式匹配到的第2个小括号中的内容,依此类推。 示例代码如下: import re if __name__ == "__main__": sourceStr = "户型:3室2厅2卫" pattern_all = "([\d]*)室(.)厅(.)卫" result = re.search(pattern_all,sourceStr) print(result) print(result.group(0)) print(result.group(1)) print(result.group(2)) print(result.group(3)) 上面一段代码的运行结果如下: <_sre.SRE_Match object; span=(3, 9), match='3室2厅2卫'> 3室2厅2卫 3 2 2 4 re.match的使用 re,match在实际应用中很少,不建议使用。 re.match能够匹配的前提是必须字符串索引0的位置能够匹配到。 import re if __name__ == "__main__": re1 = "hel." re2 = ".el" re3 = ".hel" re4 = "el" sourceStr = "hello" print(re.match(re1,sourceStr)) print(re.match(re2,sourceStr)) print(re.match(re3,sourceStr)) print(re.match(re3,sourceStr)) 上面一段代码的运行结果如下: <_sre.SRE_Match object; span=(0, 4), match='hell'> <_sre.SRE_Match object; span=(0, 3), match='hel'> None None

优秀的个人博客,低调大师

Mysql如何去掉数据库中重复记录?

对于常规的MySQL数据表中可能存在重复的数据,有些情况是允许重复数据的存在,有些情况是不允许的,这个时候我们就需要查找并删除这些重复数据,以下是具体的处理方法! 方法一:防止表中出现重复数据 当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。 例如在学生信息表中学号no不允许重复,需设置学号no为主键,且默认值不能为NULL。 CREATE TABLE student ( no CHAR(12) NOT NULL, name CHAR(20), sex CHAR(10), PRIMARY KEY (no) ); 方法二:过滤删除重复值 对于数据表中原有的数据,想要去除重复数据需要经过重复数据查找、过滤以及删除等步骤。 1. 统计重复数据 mysql> SELECT COUNT(*) as repetitions,no -> FROM student -> GROUP BY no -> HAVING repetitions > 1; 以上查询语句将返回student表中重复的记录数。 2. 过滤重复数据 如果需要读取不重复的数据可以在SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。 mysql> SELECT DISTINCT no -> FROM student; 也可以使用 GROUP BY 来读取数据表中不重复的数据 mysql> SELECT no -> FROM student -> GROUP BY (no); 3. 删除重复数据 删除数据表中重复数据,可以使用以下SQL语句: mysql> CREATE TABLE tmp SELECT no, name, sex FROM student GROUP BY (no, sex); mysql> DROP TABLE student; mysql> ALTER TABLE tmp RENAME TO student; 也可以在数据表中添加INDEX(索引)和 PRIMAY KEY(主键)来删除表中的重复记录,方法如下: mysql> ALTER IGNORE TABLE student -> ADD PRIMARY KEY (no); 欢迎工作一到五年的Java工程师朋友们加入Java架构开发:744677563 本群提供免费的学习指导 架构资料 以及免费的解答 不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

用户登录
用户注册