【问题标题】:How to iterate through all the lines using my regex from csv?如何使用来自 csv 的正则表达式遍历所有行?
【发布时间】:2021-01-06 22:20:45
【问题描述】:

我想使用我的正则表达式遍历所有进程,但我不知道如何正确执行。

import csv
import re

matched_dynamic_pattern = []
matched_static_pattern = []
not_matched = set()

with open('processes.csv', 'r') as t1, open('dynamic_patterns.csv', 'r') as t3:
    commands = set()
    reader = csv.DictReader(t1, dialect='excel', delimiter=',')
    for row in reader:
        commands.add(row['Command Line'])
    dynamic_patterns = set(t3.read().splitlines())

for command in commands:
    for pattern in dynamic_patterns:
        if re.search(pattern, command): #MY PATTERN IS NOT WORKING FROM dynamic_patterns.csv
            matched_dynamic_pattern.append(command)
        else:
            if command not in dynamic_patterns:
                not_matched.add(command)

dynamic_patterns.csv 只包含一个正则表达式:r'\"C:\\Program\sFiles\s\(x\d\d\)\\Google\\Chrome\\Application\\chrome.exe"\s--type' 应该匹配 processes.csv 中的 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --type 但是会有很多正则表达式,我不知道如何在技术层面上做出解决方案。

【问题讨论】:

    标签: python csv python-re


    【解决方案1】:

    您上面的示例正则表达式不起作用。我认为结尾的模式中有一个错误的 "。

    以下适用于“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --type”

    \"C:\\Program\sFiles\s\(x\d\d\)\\Google\\Chrome\\Application\\chrome.exe\s--type
    

    regexr上测试

    你还有更多模式的例子吗?

    【讨论】:

    • 我拼错了。最后没有"的模式。 i.imgur.com/ulWmCIG.png
    • 所以,模式没问题,但是如何将我的正则表达式放入 re.search 循环中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多