正则表达式

    xiaoxiao2022-07-06  205

     正则表达式

    NLP发烧友的另外一个重要技能是使用正则表达式工作。正则表达式描述了字符串的有效模式匹配。我们大量使用模式提取从众多杂乱无章的文本数据中获得有意义的信息。以下是读者所需要的正则表达式。在我一生中,我所用的正则表达式都不会超过这个范围。

    (句点):这个表达式匹配除了换行符\ n外的任意单个字符。\ w:这个表达式匹配[a~z A~Z 0~9]中的某个字符或数字。\ W:匹配任何非单词字符。\ s:这个表达式匹配单个空白字符——空格、换行符(\n)、回车符(\r)、制表符(\t)、换页符(\f)。\ S:这个表达式匹配任何非空白字符。\ t:这个表达式执行tab操作。\ n:这个表达式用于换行符。\ r:这个表达式用于回车符。\ d:十进制数字[0~9]。^:这个表达式在字符串开始处使用。$:这个表达式在字符串末尾处使用。\:这个表达式用于抵消特殊字符的特殊性。   例如,要匹配$符号,可以在它前面加上\。

    在现行的例子(即mystring是相同的字符串对象)中,搜索一些内容,并且试图在此字符串对象上寻找一些模式。子字符串搜索是re模块的其中一个通用用例。下面实现这一功能。

      >>># We have to import re module to use regular expression>>>import re>>>if re.search('Python',mystring):>>> print "We found python ">>>else:>>> print "NO "

    一旦执行代码,得到的消息如下。

      We found python

    可以使用正则表达式进行更多的模式查找。为了找到字符串中的所有模式,我们使用的其中一个普通的函数是findall。这个函数搜索字符串中特定的模式,并且会给出一个包含所有匹配对象的列表。

      >>>import re>>>print re.findall('!',mystring)['!', '!']

    正如我们所见,在mystring中,有两个“!”实例,findall使用一个列表,返回了这两个对象。

    最新回复(0)