Python for Informatics 第11章 正则表达式(一)

 更新时间:2016年04月21日 09:50:33   作者:徘徊在海岛  
这篇文章主要介绍了Python for Informatics 第11章 正则表达式(一)的相关资料,需要的朋友可以参考下

正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

注:以下文章原文来自于Dr Charles Severance 的 《Python for Informatics》  

  目前为止,我们一直在通读文件,查找模式和抽取字里行间我们感兴趣的各种信息。我们一直在使用像split和find的字符串方法,以及列表和字符串的切片功能来抽取行中的部分内容。

  像这样的查找和抽取任务是如此常见,所以Python拥有一个非常强大的库——正则表达式(regular expressions)来优雅地处理这些任务。我们未早一点介绍正则表达式是因为,虽然它们很强大,但是有点复杂,并且需要一些时间去适应它们的语法。

  正式表达式近乎是一个用来查找和分析字符串的小型编程语言。事实上,关于正则表达式可以写一本完整的书。在这一章,我们将只涉及其基础。想要获得正则表达式的更多信息,请参阅:

http://en.wikipedia.org/wiki/Regular_expression

http://docs.python.org/library/re.html

  在你使用正则表达式前,你必须将库文件导入到你的程序。正则表达式最简单的应用是search()函数,下面的程序将演示search函数的小应用。

import re
hand = open('mbox-short.txt')
for line in hand:
line = line.rstrip()
if re.search('From:', line):
print(line) 

  我们打开mbox-short文件,循环读取每一行,并用正则表达式的search()来查找包含“From:”字符串的行,然后打印输出这些行。这个程序并未运用正则表达式的真实能力,因为我们只要简单的使用line.find()也可实现同样的结果。

  当我们在查询字符串中添加特殊字符,使得我们可以更加精确的控制那些匹配字符串的行,这时候正则表达式的能力就开始显现。在正则表达式中添加那些特殊字符可以让我们用非常少的代码实现复杂的匹配和抽取。

  例如,正则表达式中用插入符号^来匹配一行中的开始。我们只要在查询字符前添加一个插入符,就可将程序修改为只匹配打印以“From:"开始的行,具体代码如下:

import re
hand = open('mbox-short.txt')
for line in hand:
line = line.rstrip()
if re.search('^From:', line)
print(line) 

  现在,我们将只匹配以”From:“开始的行。这个简单的例子我们可以用字符串库的startswith()方法同样实现。这个例子用来告诉我们这样一个概念,包含特殊字符的正则表达式将给我们更强的控制。

注:原文给的代码是2.7版,因为我自己使用的是3.4版,所以将print line 修改为 print(line)。

相关阅读:

Python for Informatics 第11章 正则表达式(一)

Python for Informatics 第11章之正则表达式(二)

Python for Informatics 第11章之正则表达式(四)

关于Python for Informatics 第11章 正则表达式(一)的相关内容就给大家介绍这么多,后续还会持续更新,更多精彩内容敬请关注!

相关文章

  • 利用机器学习预测房价

    利用机器学习预测房价

    这篇文章主要介绍了利用机器学习回归模型预测房价,解释清晰,代码详细,是很不错的机器学习实战演练,对机器学习感兴趣的朋友可以参考一下
    2021-04-04
  • python模拟实现斗地主发牌

    python模拟实现斗地主发牌

    这篇文章主要为大家详细介绍了python代码模拟实现斗地主发牌,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • Python multiprocessing.value实现多进程数据共享的示例

    Python multiprocessing.value实现多进程数据共享的示例

    本文介绍了Python中的multiprocessing.value,通过示例代码展示了如何使用这个类实现多进程数据共享,以及使用场景和注意事项等内容,感兴趣的朋友跟随小编一起看看吧
    2023-07-07
  • python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法

    python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法

    今天小编就为大家分享一篇python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python 编程之twisted详解及简单实例

    python 编程之twisted详解及简单实例

    这篇文章主要介绍了python 编程之twisted详解及简单实例的相关资料,需要的朋友可以参考下
    2017-01-01
  • Python中的__SLOTS__属性使用示例

    Python中的__SLOTS__属性使用示例

    这篇文章主要介绍了Python中的__SLOTS__属性使用示例,本文直接给出代码示例,需要的朋友可以参考下
    2015-02-02
  • Django Highcharts制作图表

    Django Highcharts制作图表

    Highcharts图表控件是目前使用最为广泛的图表控件 ,是纯JS图表库。这篇文章主要介绍了Django Highcharts制作图表的相关资料,非常的详细,有需要的小伙伴可以来参考下
    2016-08-08
  • Python fileinput模块如何逐行读取多个文件

    Python fileinput模块如何逐行读取多个文件

    这篇文章主要介绍了Python fileinput模块如何逐行读取多个文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python中的Sequence类型使用实例

    Python中的Sequence类型使用实例

    这篇文章主要为大家介绍了Python中的Sequence类型使用实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • python 函数中的内置函数及用法详解

    python 函数中的内置函数及用法详解

    这篇文章主要介绍了python 函数中的内置函数 及用法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07

最新评论