Python 包含字符串精确匹配项的筛选行
在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 获得的
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。我编辑了我的问题以避免任何混淆。谢谢,确实有。正则表达式非常擅长这样做。所以你想知道如何匹配整个单词,对吗?是的,我想知道如何匹配整个单词你以前有过正则表达式吗?如果不是,那么它们可能有点奇怪。但是他们让你做一些令人惊奇的事情。我已经给出了一些答案,通过提供一个非常简单的正则表达式,这对提出问题的人来说就像是一个魔术。我衷心建议大家学习一下它们。我一定会花时间学习更多关于正则表达式的工作原理。这真是太棒了!