[笔记]--Python字符串处理
一、截取字符串中的内容
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没搞懂!
参考文档:
- http://blog.csdn.net/amghost/article/details/12883025
- http://www.sharejs.com/codes/python/8414
- http://www.oschina.net/code/snippet_153443_4752
[笔记]--Python字符串处理的更多相关文章
- Python学习笔记--Python字符串连接方法总结
声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...
- [terry笔记]Python字符串
如下学习python的字符串用法. print(dir(str)) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', ...
- [笔记] Python字符串
1.字符串是以单引号'或双引号"括起来的任意文本 比如'Mifen',"Amd794",'-956-$*'等等.注意:不能单双引号组合,涉及字符串中存在单双引号出现,应用 ...
- 【Python学习笔记】字符串操作
字符串的表示 python中的字符串是一个常量,可以使用单引号'',双引号""或三引号""" """来创建一个字符串常量 ...
- [Python学习笔记][第四章Python字符串]
2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...
- python学习笔记:python字符串
二.python字符串操作符 1. 对象标准类型操作符 Python对象的标准类型操作符一共就三种:对象值的比较.对象身份的比较.布尔类型.其中对象值的比较主要是大于.小于.不等于等的数学比较符:对象 ...
- Python字符串(Python学习笔记02)
字符串 Python 3 中的字符串可以使用双引号或单引号标示,如果字符串出现引号,则可以使用 \ 来去除引号标示字符串的作用. 几种字符串的表示方法: str1 = "hello" ...
- python字符串搜索
python字符串字串查找 find和index方法 更多0 python 字符串 python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法. 1 ...
- python字符串常用方法、分割字符串等
一.字符串的常用方法 1.str.capitalize() 字符串首字母大写 2.str.center() 把字符串居中 3.str.isalnum() 判断字符串是否含有英文.数字,若有英文和数 ...
随机推荐
- JAVA~多线程:sleep、yield方法
sleep不考虑其它线程的优先级 yield让位给相同或更高优先级的线程 sleep yield package multiThread2; public class TestThread042Yie ...
- 凸包(Convex Hull)构造算法——Graham扫描法
凸包(Convex Hull) 在图形学中,凸包是一个非常重要的概念.简明的说,在平面中给出N个点,找出一个由其中某些点作为顶点组成的凸多边形,恰好能围住所有的N个点. 这十分像是在一块木板上钉了N个 ...
- 好文EF
http://www.cnblogs.com/zhaopei/p/5721789.html#autoid-0-0 http://www.cnblogs.com/zhaopei/p/5746414.ht ...
- oracle误删除恢复
create table first_fill_20151207 as -- 生成到临时表select * from first_fillas of timestamp to_timestamp('2 ...
- HTTP协议——学习资料小结
嗯,这几天回头再次的学习Servlet的知识点,觉得HTTP协议的内容是相当重要的,现在虽然知道浏览器与应用程序的交互离不开它,但是怎么将信息从浏览器传输到服务器的这个知识点还是一个盲点.于是从网上找 ...
- 学习总结 html图片热点,网页划区,拼接,表单
表单: action="负责处理的 <form id="" name="" method="post/get"服务端&quo ...
- Nodejs笔记(一)
Node近些日子大火,看样子js大有统一前端后台的趋势... Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度快,性 ...
- sphinx 超好资料
http://www.ttlsa.com/?s=sphinx
- CThreadPool
class CThreadPool { public: template <typename T> static void QueueUserWorkItem(void (T::*func ...
- linux tcp状态学习
参考: http://huoding.com/2013/12/31/316 http://www.cnblogs.com/sunxucool/p/3449068.html http://maoyida ...