当前位置: 首页 > 知识库问答 >
问题:

在Python if语句中使用regex[重复]

咸承教
2023-03-14

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

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

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

共有2个答案

阮梓
2023-03-14

我会使用re模块

import re

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

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

这是re留档:https://docs.python.org/2/library/re.html

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

苏运良
2023-03-14

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

关于regex的一些解释:

<代码>^断言字符串开头的位置

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
 类似资料:
  • 我正在使用做类似“语法分析器”的事情,使用(常规表达式)。 我只想检查基本操作的有效语法(如|-|*|/|(|))。用户将字符串(用键盘)粘贴到磁带上,我用regex对其进行验证。但我不知道如何在if语句中使用regex。我想要的是:如果用户带给我的字符串不正确(或者没有使用regex检查),请打印类似“inavlid string”的内容,如果正确,请打印“Valid string”。 我尝试过

  • 我已经使用这个正则表达式测试器来检查我的正则表达式是否有效:http://regex101.com/ 当我在RegEx-tester中输入RegEx时,它显示子字符串被捕获。 现在我想使用正则表达式从文件中 grep 子字符串。到目前为止,我对这个说法没有运气: grep 不会抛出任何错误。它根本不会像找不到匹配项时那样给出结果。 我尝试过用反斜杠来转义grep语句中的撇号,但是没有用。 非常感谢

  • 我在这里做错了什么? 尝试匹配任何包含空格、小写、大写或数字的字符串。特殊字符也很好,但我认为这需要转义某些字符。 这显然只测试上限、下限、数字和空格。但不管用。 *更新*

  • 问题内容: 在WHERE子句中有使用SELECT语句描述的名称吗?这是好/不好的做法吗? 这会是更好的选择吗? 它远没有那么优雅,但是运行起来比以前的版本要快。我不喜欢它,因为它在GUI中没有非常清晰地显示(并且SQL初学者需要理解它)。我可以将其分为两个独立的查询,但是随后事情变得混乱了…… 注意:我不仅需要日期和分数(例如姓名) 问题答案: 称为相关子查询。它有它的用途。

  • 如果我为第一个扫描器语句键入字母,我会得到“错误!!”和“输入一个数字”,但不能输入另一个数字。我是一个初学者,不知道输入语句是否可以在catch语句中使用