python字符串解析_Python-字符串解析-正则-re

正则表达式

特殊字符序列,匹配检索和替换文本

普通字符 + 特殊字符 + 数量,普通字符用来定边界

更改字符思路

字符串函数 > 正则 > for循环

元字符  匹配一个字符

# 元字符大写,一般都是取小写的反

1. 0~9 整数          \d      取反  \D

import re

example_str = "Beautiful is better than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r"\d", example_str))

print(re.findall(r"\D", example_str))

2. 字母、数字、下划线       \w      取反  \W

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\w‘, example_str))

print(re.findall(r‘\W‘, example_str))

3. 空白字符(空格、\t、\t、\n)   \s      取反  \S

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\s‘, example_str))

print(re.findall(r‘\S‘, example_str))

4. 字符集中出现任意一个    []    0-9 a-z A-Z  取反  [^]

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘[0-9]‘, example_str))

print(re.findall(r‘[^0-9]‘, example_str))

5. 除 \n 之外任意字符

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r".", example_str))

数量词  指定前面一个字符出现次数

1. 贪婪和非贪婪

a. 默认情况下是贪婪匹配,尽可能最大匹配直至某个字符不满足条件才会停止(最大满足匹配)

b. 非贪婪匹配, 在数量词后面加上 ? ,最小满足匹配

c. 贪婪和非贪婪的使用,是程序引起bug重大原因

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘.*u‘, example_str))

print(re.findall(r‘.*?u‘, example_str))

2. 重复指定次数        {n} {n, m}

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\d{3}‘, example_str))

3. 0次和无限多次         *

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘.*‘, example_str))

4. 1次和无限多次         +

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\d+‘, example_str))

5. 0次或1次             ?     使用思路: 去重

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘7896?‘, example_str))

边界匹配

1. 从字符串开头匹配 ^

2. 从字符串结尾匹配 $

正则表达式或关系    |

满足 | 左边或者右边的正则表达式

import re

example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit"

print(re.findall(r‘\d+|\w+‘, example_str))

() 括号内的正则表达式当作单个字符,并且返回()内正则匹配的内容,可以多个,与关系

Python-正则相关模块-re

1. 从字符中找到匹配正则的字符 findall()

import re

name = "Hello Python 3.7, 123456789"

total = re.findall(r"\d+", name)

print(total)

2. 替换正则匹配者字符串 sub()

import re

def replace(value):

return str(int(value.group()) + 1)

result_str = re.sub(r"\d", replace, name, 0)

print(result_str)

匹配一个中文字符   [\u4E00-\u9FA5]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

algorithm -- 选择排序

选择排序是《导论》第一章课后习题,仿照插入排序,再次运用循环不变式来证明下算法的正确性,C 源码: // 交换函数 void swap( int& a, int& b ) {a a^b;b a^b;a a^b; } void selectSort( int *arr, int count ) {if( a…

OD 完美走位

题目描述: 在第一人称射击游戏中,玩家通过键盘的A、S、D、W四个按键控制游戏人物分别向左、向后、向右、向前进行移动,从而完成走位。假设玩家每按动一次键盘,游戏人物会向某个方向移动一步,如果玩家在操作一定次数的键…

layui upload 后台获取不到值

后台获取不到值方法一&#xff1a; <script>layui.use(upload, function () {var upload layui.upload;//执行实例var uploadInst upload.render({elem: #test1 //绑定元素, url: /Home/UploadFiles //上传接口, field: "fileNames" //添加这个属性与后台…

ueeditor无法上传图片_百度ue文本编辑器开发中无法上传图片

第一次发文&#xff0c;好紧张呀&#xff0c;不知道会不会没人看。之前用ue遇到了一些坑&#xff0c;没人看就当自己记录了笔记。第一次用&#xff0c;总是会遇到问题&#xff0c;可以先查看下百度ue的演示http://ueditor.baidu.com/website/onlinedemo.html和API http://fex.b…

SQL 语句优化--IN语句优化案例

为什么80%的码农都做不了架构师&#xff1f;>>> 今天客户系统升级&#xff0c;通过DMVs性能分析查了一下&#xff0c;升级后发现一个语句执行时间比较长&#xff0c;执行语句要好几秒钟&#xff0c;调出语句如下&#xff1a; select distinct field003 from ufi2j0…

Activity跳转

本例中MainActivity为&#xff1a;FirstActivity.java FirstActivity如下&#xff1a; package com.wyl.intentmultiactivitytest;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.Vie…

Java课程设计---项目数据库设计(含实体类)

1、数据库分析设计 将数据库命名为&#xff1a;db_student 分析系统中各角色之间的关系 2、表设计 &#xff08;1&#xff09;新建表tb_student&#xff08;学生表&#xff09; &#xff08;2&#xff09;新建表tb_admin&#xff08;管理员表&#xff09; &#xff08;3&#x…

java)_Java NIO系列教程(一) Java NIO 概述

原文链接 作者&#xff1a;Jakob Jenkov 译者&#xff1a;airu 校对&#xff1a;丁一Java NIO 由以下几个核心部分组成&#xff1a;ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件&#xff0c;但在我看来&#xff0c;Channel&#xff0c;Buffer…

本地读取服务器Xml文件及本地读本地的xml

updateUrl"ServerUrl"(服务器路径) WebClient wc new WebClient(); Stream stream wc.OpenRead(updateUrl); XmlDocument xmlDoc new XmlDocument(); xmlDoc.Load(stream); XmlNode list xmlDoc.SelectSingleNode("Update"); foreach (XmlNode node in…

Context.getExternalFilesDir()和Context.getExternalCacheDir()方法

2019独角兽企业重金招聘Python工程师标准>>> Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录&#xff0c;一般存放临时缓存数据如果使用上面的方法&#xff0c;当你的应用在被用户卸载后&#xff0c;SDCard/Android/dat…

java 静态代码块_JAVA静态代码块

今天遇到下面的代码&#xff0c;感觉很奇怪&#xff0c;特意记录下&#xff1a;代码如下&#xff1a;public class Test {private static List objs new ArrayList();static {objs.add(new Test(Test.S_NAME,Test.NAME,Test.COUNT));objs.add(new Test(Test.S_NAME,Test.NAME,…

context详解

1、Context概念&#xff1a; Context&#xff0c;相信不管是第一天开发Android&#xff0c;还是开发Android的各种老鸟&#xff0c;对于Context的使用一定不陌生~~你在加载资源、启动一个新的Activity、获取系统服务、获取内部文件&#xff08;夹&#xff09;路径、创建View操作…

Unity Camera的两种模式

http://www.cnblogs.com/zhaoqingqing/p/3302484.html

mysql之group_concat函数

mysql之group_concat函数 在介绍GROUP_CONCAT之前&#xff0c;我们先来看看concat()函数和concat_ws()函数。 先准备一个测试数据库&#xff1a; mysql> select * from scores; --------------------- | id | name | score | --------------------- | 1 | zhangsan | 1…

java 图片批量上传_java实现批量上传图片,还要保证每个图片的顺序号,疑问求教!...

rt我要一次性同时上传n张照片&#xff0c;并且每张照片的顺序号还不一样&#xff0c;第一张的serialno是1&#xff0c;第二张是2。。一开始我做单张图片上传&#xff0c;代码如下RequestMapping("/picUpLoad")ResponseBodypublic Map picUpLoad(MultipartFile file, …

linux 用户创建、管理、权限分配

&#xff08;1&#xff09;su与sudo su:通过su可以在用户之间切换&#xff0c;如果超级权限用户root向普通或虚拟用户切换不需要密码&#xff0c;什么是权力&#xff1f;这就是&#xff01;而普通用户切换到其它任何用户都需要密码验证&#xff1b; sudo: sudo扮演的角色注定了…

WebApi路由

路由分为两种模式&#xff1a;模板路由和特性路由。 模板路由&#xff1a; 模板路由是ASP.NET Web API默认提供的路由。模板路由使用前需要定义路由模板。如下面默认的路由模板&#xff1a; 默认路由的URL格式是api/{controller}/{id}。api代表在资源前面要带上api目录&#xf…

HW--漂亮度2(测试通过)

总结&#xff1a;几个函数的使用 &#xff08;1&#xff09; int numInteger.parseInt(str[0]); //将第一个字符串转成整形数&#xff0c;表示名字个数 &#xff08;2&#xff09; String string1str[i].toLowerCase(); //变小写都 &#xff08;3&#xff09; char ch[]strin…

java设计模式 组合_JAVA 设计模式 组合模式

用途组合模式 (Component)将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有唯一性。组合模式是一种结构型模式。结构图-组合模式结构图Component: 组合中的对象声明接口&#xff0c;在适当的情况下&#xff0c;实现所有类共…

项目总结SpringMVC相关

流程文字概述1、用户发送请求至前端控制器DispatcherServlet2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器&#xff0c;生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、DispatcherServlet调用Ha…