在Python if statement中使用regex

2024-05-26 11:11:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我这样做对吗?任何帮助都将不胜感激!


Tags: 数据字符串in文本pandasforindexif
2条回答

我将使用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

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

关于regex的一点解释:

^断言字符串开头的位置

[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

相关问题 更多 >