初学Python时相关注意事宜

开发 后端
初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了。

初学Python时应该对Python概念有所了解,其实Python就是:是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史。

但是对于初学者来说,要用好这个功能还是有点难度,我花了好长时间才摸出了点门道。由于我记性不好,很容易就忘事,所以还是写下来比较好一些,同时也可以加深印象,整理思路。

1 Python正则式的基本用法

Python的正则表达式的模块是 ‘re’,它的基本语法规则就是指定一个字符序列,比如你要在一个字符串s=’

123abc456’ 中查找字符串 ’abc’,只要这样写:

  1. else:  
  2.     # example for windows  
  3.        gnuplot_exe = r"c:\gnuplot\bin\pgnuplot.exe" 
  4.  
  5. 然后可以到dos下去运行easy.py和grid.py。  
  6.  
  7. 如 cd C:\libsvm-2.89\tools   
  8.  
  9. python grid.py train.txt  

结果就是:

这里用到的函数 ”findall(rule , target [,flag] )” 是个比较直观的函数,就是在目标字符串中查找符合规则的字符串。第一个参数是规则,第二个参数是目标字符串。后面还可以跟一个规则选项(选项功能将在compile函数的说明中详细说明)。返回结果结果是一个列表,中间存

放的是符合规则的字符串。如果没有符合规则的字符串被找到,就返回一个空列表。为什么要用r’ ..‘字符串(raw字符串)? 由于正则式的规则也是由一个字符串定义的,而在正则式中大量使用转义字符’\’,如果不用raw字符串。

则在需要写一个’\’的地方,你必须得写成’\\’,那么在要从目标字符串中匹配一个’\’的时候,你就得写上4个’\’成为’\\\\’!这当然很麻烦,也不直观,所以一般都使用r’’来定义规则字符串。当然,某些情况下,可能不用raw字符串比较好。

下面来一个一个的说明这些规则的含义,不过说明的顺序并不是按照上面的顺序来的,而是我认为由浅入深,由基本到复杂的顺序来编排的。同时为了直观,在说明的过程中尽量多举些例子以方便理解。

初学Python首先说明一下字符集合设定的方法。由一对方括号括起来的字符,表明一个字符集合,能够匹配包含在其中的任意一个字符。比如 [abc123],表明字符’a’ ‘b’ ‘c’ ‘1’ ‘2’ ‘3’都符合它的要求。可以被匹配。

在’[‘ ‘]’中还可以通过 ’-‘ 减号来指定一个字符集合的范围,比如可以用[a-zA-Z]来指定所以英文字母的大小写,因为英文字母是按照从小到大的顺序来排的。你不可以把大小的顺序颠倒了,比如写成[z-a]就不对了。

如果在’[‘ ‘]’里面的开头写一个 ‘^’ 号,则表示取非,即在括号里的字符都不匹配。如[^a-zA-Z]表明不匹配所有英文字母。但是如果 ‘^’不在开头,则它就不再是表示取非,而表示其本身,如[a-z^A-Z]表明匹配所有的英文字母和字符’^’。

它匹配一个单词的边界,比如空格等,不过它是一个‘0’长度字符,它匹配完的字符串不会包括那个分界的字符。而如果用’\s’来匹配的话,则匹配出的字符串中会包含那个分界符。

初学Python正则式需要匹配不定长的字符串,那就一定需要表示重复的指示符。Python的正则式表示重复的功能很丰富灵活。重复规则的一般的形式是在一条字符规则后面紧跟一个表示重复次数的规则,已表明需要重复前面的规则一定的次数。

【编辑推荐】

  1. 如何使Python嵌入C++应用程序?
  2. 深入探讨Ruby与Python语法比较
  3. Python学习资料介绍分享
  4. Python学习经验谈:版本、IDE选择及编码解 决方案
  5. 浅析Python的GIL和线程安全
责任编辑:chenqingxiang 来源: NET130
相关推荐

2010-02-01 13:41:43

2010-01-28 11:24:14

C++函数

2010-01-27 10:36:54

C++虚函数

2009-12-21 17:39:02

ADO.NET操作

2010-01-22 14:12:40

C++

2009-12-29 13:40:24

使用ADO.NET

2010-02-03 10:21:46

初学Python

2010-02-01 13:48:42

Python程序

2009-12-25 15:47:20

ADO存储过程

2010-02-04 11:23:14

Android操作系统

2009-12-18 13:46:16

Visual Web

2009-11-30 11:14:57

VS2003 WebS

2010-03-05 15:30:29

Android编程语言

2009-12-29 14:24:40

使用ADO.NET

2010-01-12 18:06:58

VC环境

2009-05-06 08:52:44

微软Windows 7操作系统

2010-01-28 16:42:29

C++静态成员

2009-12-10 10:15:22

VS SP6.0

2010-01-04 14:40:51

ADO 检索

2009-12-22 15:33:33

ADO.NET参数
点赞
收藏

51CTO技术栈公众号