在Python if语句中使用正则表达式

时间:2018-01-11 21:13:55

标签: python regex

我试图找出如何将正则表达式合并到python if语句中。我有一个pandas数据框,我在迭代行,并希望每次行具有特定的文本组合时执行操作。正则表达式应匹配以大写字母开头,后跟6个数字的任何7个字符串(即R142389)

        for index, row in df1.iterrows():
             if row[4] == REGEX HERE:
                  Perform Action

我是以正确的方式来做这件事的吗?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

是的,你可以这样做,只需使用match,它只会在与它进行比较的字符串的开头匹配。您必须使用search来搜索整个字符串。

关于正则表达式的一些解释:

^在字符串

的开头断言位置

[A-Z] A-Z A(索引65)和Z(索引90)之间范围内的单个字符(区分大小写)

\d{6}匹配一个数字(等于[0-9]{6}量词 - 恰好匹配6次

$在字符串末尾断言位置,或者在字符串末尾的行终止符之前断言

import re

regex = re.compile('^[A-Z]\d{6}$')

possibles = ['R142389', 'hello', 'J123456']

for line in possibles:
    if regex.match(line):
        print(line)

输出:

R142389
J123456

答案 1 :(得分:0)

我会使用re模块

import re

re.search(pattern, string, flags=0)

其中pattern是要匹配的正则表达式,string是要搜索的字符串,flags是可选修饰符。当没有匹配时,此函数返回None

以下是re文档: https://docs.python.org/2/library/re.html

这是一个实施示例:https://www.tutorialspoint.com/python/python_reg_expressions.htm