
正则表达式
文章平均质量分 81
CsharpGame
这个作者很懒,什么都没留下…
展开
-
比较详细Python正则表达式操作指南(re使用)[12]
贪婪 vs 不贪婪 当重复一个正则表达式时,如用 a*,操作结果是尽可能多地匹配模式。当你试着匹配一对对称的定界符,如 HTML 标志中的尖括号时这个事实经常困扰你。匹配单个 HTML 标志的模式不能正常工作,因为 .* 的本质是“贪婪”的 #!python >>> s = 'Title' >>> len(s) 32 >>> print re.match('转载 2014-04-19 23:14:08 · 998 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[5]
更多的元字符 还有一些我们还没展示的元字符,其中的大部分将在本节展示。 剩下来要讨论的一部分元字符是零宽界定符(zero-width assertions)。它们并不会使引擎在处理字符串时更快;相反,它们根本就没有对应任何字符,只是简单的成功或失败。举个例子, "b 是一个在单词边界定位当前位置的界定符(assertions),这个位置根本就不会被 "b 改变。这意味着零宽界定符(转载 2014-04-19 23:08:16 · 1195 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[10]
搜索和替换 其他常见的用途就是找到所有模式匹配的字符串并用不同的字符串来替换它们。sub() 方法提供一个替换值,可以是字符串或一个函数,和一个要被处理的字符串。 sub(replacement, string[, count = 0]) 返回的字符串是在字符串中用 RE 最左边不重复的匹配来替换。如果模式没有发现,字符将被没有改变地返回。 可选参数 count 是转载 2014-04-19 23:12:39 · 752 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[6]
分组 你经常需要得到比 RE 是否匹配还要多的信息。正则表达式常常用来分析字符串,编写一个 RE 匹配感兴趣的部分并将其分成几个小组。举个例子,一个 RFC-822 的头部用 ":" 隔成一个头部名和一个值,这就可以通过编写一个正则表达式匹配整个头部,用一组匹配头部名,另一组匹配头部值的方式来处理。 组是通过 "(" 和 ")" 元字符来标识的。 "(" 和 ")" 有很多在数转载 2014-04-19 23:08:56 · 789 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[11]
在下面的例子里,替换函数将十进制翻译成十六进制: #!python >>> def hexrepl( match ): "Return the hex string for a decimal number" value = int( match.group() ) return hex(value) >>> p = re.compil转载 2014-04-19 23:13:21 · 771 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[4]
#!python >>> iterator = p.finditer('12 drummers drumming, 11 10 ') >>> iterator callable-iterator object at 0x401833ac> >>> for match in iterator: print match.span() (0, 2)转载 2014-04-19 23:07:31 · 1039 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[7]
无捕获组和命名组 精心设计的 REs 也许会用很多组,既可以捕获感兴趣的子串,又可以分组和结构化 RE 本身。在复杂的 REs 里,追踪组号变得困难。有两个功能可以对这个问题有所帮助。它们也都使用正则表达式扩展的通用语法,因此我们来看看第一个。 Perl 5 对标准正则表达式增加了几个附加功能,Python 的 re 模块也支持其中的大部分。选择一个新的单按键元字符或一个以 "转载 2014-04-19 23:10:02 · 620 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[3]
现在,你可以试着用 RE 的 [a-z]+ 去匹配不同的字符串。一个空字符串将根本不能匹配,因为 + 的意思是 “一个或更多的重复次数”。在这种情况下 match() 将返回 None,因为它使解释器没有输出。你可以明确地打印出 match() 的结果来弄清这一点。 #!python >>> p.match("") >>> print p.match("") None转载 2014-04-19 23:06:40 · 1053 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[8]
前向界定符 另一个零宽界定符(zero-width assertion)是前向界定符。前向界定符包括前向肯定界定符和後向肯定界定符,所下所示: (?=...) 前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩馀部分还要尝试界定符的右边。 (?!...) 前向否定界定符。与转载 2014-04-19 23:10:52 · 1034 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[9]
将字符串分片 `RegexObject` 的 split() 方法在 RE 匹配的地方将字符串分片,将返回列表。它同字符串的 split() 方法相似但提供更多的定界符;split()只支持空白符和固定字符串。就象你预料的那样,也有一个模块级的 re.split() 函数。 split(string [, maxsplit = 0]) 通过正则表达式将字符串分片。如果捕获括号转载 2014-04-19 23:11:43 · 574 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)[2]
使用正则表达式 现在我们已经看了一些简单的正则表达式,那么我们实际在 Python 中是如何使用它们的呢? re 模块提供了一个正则表达式引擎的接口,可以让你将 REs 编译成对象并用它们来进行匹配。 编译正则表达式 正则表达式被编译成 `RegexObject` 实例,可以为不同的操作提供方法,如模式匹配搜索或字符串替换。 #!python >>> import re >>>转载 2014-04-19 23:02:51 · 953 阅读 · 0 评论