Python 包含字符串精确匹配项的筛选行

Python 包含字符串精确匹配项的筛选行,python,Python,在python中,我试图过滤包含字符串精确匹配的文件中的行。 首先,我编写了以下代码部分 lines = ["z = xxx; %eflee","x = eee ; %flee"] for lineNo,line in enumerate(lines): tags = ["flee"] for tag in tags: if tag in line: print(line) 期望输出: x = eee ; %flee 获得的

在python中,我试图过滤包含字符串精确匹配的文件中的行。 首先,我编写了以下代码部分

lines = ["z  = xxx;  %eflee","x  = eee ;  %flee"]

for lineNo,line in enumerate(lines):
    tags = ["flee"]
    for tag in tags:
        if tag in line:
           print(line)
期望输出:

x  = eee ;  %flee
获得的产量:

z  = xxx;  %eflee
x  = eee ;  %flee

有人能解释一下如何获得所需的输出吗?

以下是如何将每个标签作为一个整体进行匹配:

import re

lines = ["z  = xxx;  %eflee","x  = eee ;  %flee"]

for lineNo,line in enumerate(lines):
    tags = ["flee"]
    for tag in tags:
        if re.search(r'\b%s\b' % tag, line):
           print(line)
输出:

x  = eee ;  %flee
r'\bflee\b'是一个正则表达式,它只匹配整个单词“flue”。它之所以有效,是因为“\b”表示仅在单词边界处匹配

如果可以在一行中匹配两个标记,并且不想在同一行中打印两次,则应在同一缩进级别的“print(line)”下添加“break”

你不用lineNo。如果您确实不需要,可以将“for”行更改为:

for line in lines:

以下是如何将每个标签仅作为一个单词进行匹配:

import re

lines = ["z  = xxx;  %eflee","x  = eee ;  %flee"]

for lineNo,line in enumerate(lines):
    tags = ["flee"]
    for tag in tags:
        if re.search(r'\b%s\b' % tag, line):
           print(line)
输出:

x  = eee ;  %flee
r'\bflee\b'是一个正则表达式,它只匹配整个单词“flue”。它之所以有效,是因为“\b”表示仅在单词边界处匹配

如果可以在一行中匹配两个标记,并且不想在同一行中打印两次,则应在同一缩进级别的“print(line)”下添加“break”

你不用lineNo。如果您确实不需要,可以将“for”行更改为:

for line in lines:

%eflee还包含fleed,为什么不将%添加到标记中?%eflee还包含fleed,为什么不将%添加到标记中?这有助于实现我的目标。我仍然很想知道是否有办法匹配精确的字符串,而不是打印包含子字符串的行。例如,逃离而不是eflee。我编辑了我的问题以避免任何混淆。谢谢,确实有。正则表达式非常擅长这样做。所以你想知道如何匹配整个单词,对吗?是的,我想知道如何匹配整个单词你以前有过正则表达式吗?如果不是,那么它们可能有点奇怪。但是他们让你做一些令人惊奇的事情。我已经给出了一些答案,通过提供一个非常简单的正则表达式,这对提出问题的人来说就像是一个魔术。我衷心建议大家学习一下它们。我一定会花时间学习更多关于正则表达式的工作原理。这真是太棒了!这有助于实现我的目标。我仍然很想知道是否有办法匹配精确的字符串,而不是打印包含子字符串的行。例如,逃离而不是eflee。我编辑了我的问题以避免任何混淆。谢谢,确实有。正则表达式非常擅长这样做。所以你想知道如何匹配整个单词,对吗?是的,我想知道如何匹配整个单词你以前有过正则表达式吗?如果不是,那么它们可能有点奇怪。但是他们让你做一些令人惊奇的事情。我已经给出了一些答案,通过提供一个非常简单的正则表达式,这对提出问题的人来说就像是一个魔术。我衷心建议大家学习一下它们。我一定会花时间学习更多关于正则表达式的工作原理。这真是太棒了!