一、截取字符串中的内容

1、截取: MsiExec.exe /I{AC76BA86-7AD7-2052-7B44-AB0000000001} 中的: {AC76BA86-7AD7-2052-7B44-AB0000000001} 包括大括号

>>> import re
>>> text = 'MsiExec.exe /I{AC76BA86-7AD7-2052-7B44-AB0000000001}'
>>> re.findall(r'{[^}]*}', text)
['{AC76BA86-7AD7-2052-7B44-AB0000000001}'] [^}] 是指不是 } 的字符, {[^}]*} 是指由 { 开始、 } 结束的至少0个不是 } 的字符 或者 re.findall(r'{.*?}', text)

注意:{.*} 和{.*?}的区别,前者是贪婪模式,后者是非贪婪模式

2、截取: MsiExec.exe /I{AC76BA86-7AD7-2052-7B44-AB0000000001} 中的: AC76BA86-7AD7-2052-7B44-AB0000000001 不包括大括号

>>> import re
>>> text = 'MsiExec.exe /I{AC76BA86-7AD7-2052-7B44-AB0000000001} abc } { xyz }'
>>> re.findall(r'(?<={).*?(?=})', text)
['AC76BA86-7AD7-2052-7B44-AB0000000001', ' xyz ']
>>> re.findall(r'(?<={)[^}]*(?=})', text)
['AC76BA86-7AD7-2052-7B44-AB0000000001', ' xyz '] (?<={) 匹配左边是 { 的位置
(?=}) 匹配右边是 } 的位置

二、匹配字符串,并且截取匹配的内容

1、匹配“softname_3.5.7896.all”,并且截取“7896”

>>> import re
>>> text = "softname_3.5.7896.all"
>>> handle = re.compile(r'softname_3.5.([0-9]{4}).all')
>>> m = handle.match(text)
>>> m.group(0)
'softname_3.5.7896.all'
>>> m.group(1)
''

其中:group(0)表示匹配到的整个字符串,group(1)表示正则表达式中第1个括号匹配的字符,group(2)表示正则表达式中第2个括号匹配的字符,一次类推;

三、随机产生字符串

方法1:

import string
import random
def RandomChar():
random_char = ''.join(random.sample(string.ascii_letters + string.digits + string.punctuation, 50))
random_char = ''.join([random.choice(string.letters+string.digits) for e in range(100)])
return random_char

方法2:

import os
def randomString(n):
return (''.join(map(lambda xx:(hex(ord(xx))[2:]),os.urandom(n))))[0:16] print randomString(16)

方法2没搞懂!

参考文档:

[笔记]--Python字符串处理的更多相关文章

  1. Python学习笔记--Python字符串连接方法总结

    声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...

  2. [terry笔记]Python字符串

    如下学习python的字符串用法. print(dir(str)) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', ...

  3. [笔记] Python字符串

    1.字符串是以单引号'或双引号"括起来的任意文本 比如'Mifen',"Amd794",'-956-$*'等等.注意:不能单双引号组合,涉及字符串中存在单双引号出现,应用 ...

  4. 【Python学习笔记】字符串操作

    字符串的表示 python中的字符串是一个常量,可以使用单引号'',双引号""或三引号""" """来创建一个字符串常量 ...

  5. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  6. python学习笔记:python字符串

    二.python字符串操作符 1. 对象标准类型操作符 Python对象的标准类型操作符一共就三种:对象值的比较.对象身份的比较.布尔类型.其中对象值的比较主要是大于.小于.不等于等的数学比较符:对象 ...

  7. Python字符串(Python学习笔记02)

    字符串 Python 3 中的字符串可以使用双引号或单引号标示,如果字符串出现引号,则可以使用 \ 来去除引号标示字符串的作用. 几种字符串的表示方法: str1 = "hello" ...

  8. python字符串搜索

    python字符串字串查找 find和index方法 更多0 python 字符串 python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法. 1 ...

  9. python字符串常用方法、分割字符串等

    一.字符串的常用方法 1.str.capitalize()  字符串首字母大写 2.str.center()  把字符串居中 3.str.isalnum() 判断字符串是否含有英文.数字,若有英文和数 ...

随机推荐

  1. jmeter的分布式部署

    在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持(公司配的联想e450家庭用笔记本一般到1000就会卡死),这时可以使用Jmeter ...

  2. Unity AssetBundles and Resources指引 (三) AssetBundle基础

    本文内容主要翻译自下面这篇文章 https://unity3d.com/cn/learn/tutorials/topics/best-practices/guide-assetbundles-and- ...

  3. 第2章 linux文件系统

    1.用户和用户组管理 1.1 用户管理常用命令 1.用户账号添加命令useradd或adduser 命令格式:useradd [option] [username] 其中[option]为userad ...

  4. EF,ADO.NET Entity Data Model简要的笔记

    1. 新建一个项目,添加一个ADO.NET Entity Data Model的文件,此文件会生成所有的数据对象模型,如果是用vs2012生的话,在.Designer.cs里会出现“// Defaul ...

  5. No.006 ZigZag Conversion

    6. ZigZag Conversion Total Accepted: 98584 Total Submissions: 398018 Difficulty: Easy The string &qu ...

  6. SpringMVC使用静态资源

    1.Servlet配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&quo ...

  7. CentOS 5.5 下安装Countly Web Server过程记录

    CentOS 5.5 下安装Countly Web Server过程记录 1. 系统更新与中文语言包安装 2. 基本环境配置: 2.1. NodeJS安装 依赖项安装 yum -y install g ...

  8. [转]CentOS开机启动脚本

    转载自http://www.2cto.com/os/201306/220559.html   我的一个Centos开机自启动脚本的制作   一.切换到/etc/init.d/   二.制作sh脚本 v ...

  9. JavaScript根据CSS的Media Queries来判断浏览设备的方法

    CSS 部分 首先随便新建一个用来做判断的类,然后通过 Media Queries 来对这个类的 z-index 属性赋予不同的值.这个类仅作为 JavaScript 读取使用,所以需要将其移出屏幕窗 ...

  10. linux网络bond技术

    http://blog.chinaunix.net/uid-20799583-id-3117665.html1.创建bond0配置文件vi /etc/sysconfig/network-scripts ...