1.1、#####去掉字符串中的转义符string.strip()

print "hello\tworld\n"

>>> word="\thello world\n"

>>> print "word.strip()后输出:",word.strip()

word.strip()后输出: hello world

>>> print "word.lstrip()后输出:",word.lstrip()

word.lstrip()后输出: hello world

>>>

1.2、#####字符串拼接使用+或者join

>>> str1="you "

>>> str2="and "

>>> str3="me"

>>> 

>>> 

>>> result=str1+str2+str3

>>> print result

you and me

##python提供了函数join()连接字符串,join()配合列表实现多个字符串的连接十分方便

>>> strs=['you ','and ','me']

>>> "".join(strs)

'you and me'

1.3、#####字符串的截取,[start:end:step]从string的第start索引位置開始到第end个索引之间(不包含end)截取子串,截取的步长是step

##获取偶数位的字符

>>> str1="hello world"

>>> print str1[1::2]

el ol

>>> print str1[1:3:2]

e



##split()使用

split([char][,num]):參数char表示用于分隔的字符,默认的分隔符是空格;參数num表示分隔的次数,num+1个子串

>>> str1="yangsq said: 1, 2, 3, 4"

>>> str1.split()

['yangsq', 'said:', '1,', '2,', '3,', '4']

>>> str1.split(',',2)

['yangsq said: 1', ' 2', ' 3, 4']

1.4、#####字符串的比較

java使用equal()比較两个字符串的内容。python直接使用==、!=比較字符串的内容,假设比較的两个变量的类型不同。比較的内容自然不同

>>> str1,str2=1,"1"

>>> if str1!=str2:print "不同样"

... 

不同样

>>> if str(str1)==str2:print "同样"

... 

同样

##比較字符串,能够比較截取的子串,也能够比較字符串的开头和结尾部分(使用startswith或endswith()函数)

1.5、#####字符串的反转

def reverse():

l1=list("hello")

out=''

for i in range(len(l1),0,-1):

print("l1[i-1]->",l1[i-1])

out+=l1[i-1]

else:

print "out=%s" %out

print type(out)

>>> reverse()

('l1[i-1]->', 'o')

('l1[i-1]->', 'l')

('l1[i-1]->', 'l')

('l1[i-1]->', 'e')

('l1[i-1]->', 'h')

olleh



python的列表是对字符串进行处理的经常使用方式。灵活使用列表等内置数据结构处理字符串。可以减少编程的复杂度。利用序列的"切片"实现字符串的反转最为简洁

>>> str1="hello"

>>> str1[::-1]

'olleh'

1.6、字符串的查找和替换

help(str.find):find(...) S.find(sub [,start [,end]]) -> int,假设找到字符串sub。则返回源字符串第1次出现的索引。否则返回-1

help(str.replace):replace(...) S.replace(old, new[, count]) -> string。replace实现字符串的替换。该函数能够指定替换的次数,默认是替换全部匹配的old

>>> str1="hello world,hello china"

>>> print str1.replace("hello","hi")

hi world,hi china

>>> print str1.replace("hello","hi",1)

hi world,hello china

1.7、字符串与日期的转换

time.strftime(format[,tuple]):将时间转换为字符串。format表示格式化日期的字符;tuple表示须要转换的时间,用元组存储

>>> import time

>>> print strftime("%Y-%m-%d",time.localtime()) ##报错了

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

NameError: name 'strftime' is not defined

>>> print time.strftime("%Y-%m-%d",time.localtime())

2015-08-14

>>> print time.strftime("%Y-%m-%d %X",time.localtime())

2015-08-14 16:42:43



time.strptime(string,format):将字符串转换为时间,函数返回一个存放时间的元组

1.8、正則表達式

默认情况下,正則表達式将匹配最长的字符串作为结果。能够通过在限定符后面加入?的方式。获取最短匹配的结果。

比如:对abcabcab进行a*c匹配,则结果为abcabc;

对abcabcab进行a*?c匹配,则结果为返回2个abc;

^与[^m]中^的含义不同,前者是以xxx開始,后者表示除了......;(和)是正則表達式中特殊的字符,假设要把它们作为普通字符处理。须要在它们前面加入转义字符\

1.9、使用re模块处理正则笔表达式

re模块提供了一些正則表達式进行查找、替换、分隔字符串的函数。re模块的经常使用函数有:findall(pattern, string, flags=0)、sub(pattern, repl, string, count=0)、match(pattern, string, flags=0)比如:re.findall('%s(\d{1,20})' % i,result)。

函数match()必须从字符串的第0个索引位置開始搜索。假设从第0个索引位置的字符就不匹配,match()的匹配就会失败。

re模块的一部分函数中都有一个flags參数,该參数用于设置匹配的附加选项;

>>> print re.sub("hello","hi",s)

hi world

>>> print re.sub("world","hi",s[-4:])

orld

>>> print re.sub("world","china",s[-5:])

china



注意:正則表達式的解析很耗时,假设多次使用同一规则匹配字符串,能够使用compile()函数进行预编译。compile返回一个pattern对象。该对象拥有一系列方法用于查找、替换或扩展

字符串。

>>> import re

>>> s="1abc23def45"

>>> print re.findall("\d+",s)

['1', '23', '45']

>>> p=re.compile("\d+")

>>> print p.findall(s)

['1', '23', '45']

python之路-------字符串与正則表達式的更多相关文章

  1. Python - 连续替换(replace)的正則表達式(re)

    字符串连续替换, 能够连续使用replace, 也能够使用正則表達式. 正則表達式, 通过字典的样式, key为待替换, value为替换成, 进行一次替换就可以. 代码 # -*- coding: ...

  2. php中的字符串和正則表達式

    一.字符串类型的特点 1.PHP是弱类型语言,其它数据类型一般都能够直接应用于字符串函数操作. 1: <? php 2: echo substr("123456",2,4); ...

  3. python进阶十_正則表達式(一)

    近期状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思全然不在点上,希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,假设真的是我自己的问题呢,曾经我 ...

  4. Python——正則表達式(2)

    本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...

  5. Python正則表達式:怎样使用正則表達式

    正則表達式(简称RE)本质上能够看作一个小的.高度专业化的编程语言,在Python中能够通过re模块使用它.使用正則表達式,你须要为想要匹配的字符串集合指定一套规则,字符串集合能够包括英文句子.e-m ...

  6. Python基础--正則表達式基本的语法以及re模块

    正则是个非常牛逼的东西,python中当然也不会缺少. 所以今天的Python就跟大家一起讨论一下python中的re模块. re模块包括对正則表達式的支持. 什么是正则: 正則表達式是能够匹配文本片 ...

  7. Python正則表達式

    Python正則表達式 正則表達式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本号起添加了re 模块,它提供 Perl 风格的正則表達式模式. r ...

  8. 使用正則表達式的格式化与高亮显示json字符串

    使用正則表達式的格式化与高亮显示json字符串 json字符串非常实用,有时候一些后台接口返回的信息是字符串格式的,可读性非常差,这个时候要是有个能够格式化并高亮显示json串的方法那就好多了,以下看 ...

  9. Java正則表達式入门

     众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...

随机推荐

  1. JavaScript变量提升(Hoisting)的小案例

    变量提升(Hoisting)的小案例 执行以下代码的结果是什么?为什么? 答案 这段代码的执行结果是undefined 和 2. 这个结果的原因是,变量和函数都被提升(hoisted) 到了函数体的顶 ...

  2. 数据库-mongodb-Gridfs

    GridFS是一种将大型文件存储在MongoDB的文件规范: 数据库支持以BSON格式保存二进制对象. 但是MongoDB中BSON对象最大不能超过4MB. GridFS 规范提供了一种透明的机制,可 ...

  3. pcapy-0.10.8 安装

    (1)下载 http://corelabs.coresecurity.com/index.php?module=Wiki&action=view&type=tool&name= ...

  4. ZOJ 3556

    终于做出来了,激动.... 这道题隐藏得深啊,但若推导下来,就变简单了. 首先,一个集合的子集的个数为2^n=s.注意了,题目求的是有序集合组,并且每个集合是可以重复使用的,怎么办呢?这就要想到多重集 ...

  5. 【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素

    //旋转数组的最小数字 //题目:把一个数组最開始的若干个元素搬到数组的末尾.我们称之为数组的旋转. //输入一个递增排序的数组的一个旋转.输出旋转数组中的最小元素. //比如:数组{3.4,5,1, ...

  6. 在Redhat Linux中执行非Redhat的Openstack, Redhat将对其Linux不提供支持

    一声叹息. IBM.HP.Dell, Mirantis, Piston等.请问.你们还把你们的Openstack部署在Redhat中吗? http://blogs.wsj.com/digits/201 ...

  7. 浅析JAVA设计模式之工厂模式(二)

    1 工厂方法模式简单介绍 工厂方法 (Factroy Method)模式:又称多态性工厂模式(Polymorphic Factory),在这样的模式中,核心工厂不再是一个详细的类.而是一个抽象工厂,提 ...

  8. Visual C++文件后缀名释义

    [1] .APS:存放二进制资源的资源辅助中间文件(可加快资源装载速度). [2] .BMP:位图资源文件. [3] .BSC:浏览信息文件.由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(. ...

  9. js解析网络中的json数据

    <?php echo <<<_END <html> <head> </head> <body> <div id=" ...

  10. m_Orchestrate learning system---六、善用组件插件的好处是什么

    m_Orchestrate learning system---六.善用组件插件的好处是什么 一.总结 一句话总结: 1.面包屑导航是什么? 知道它是什么自然就知道它怎么用了 2.表格里面的栏目能能点 ...