正则表达式使用python打印独特的线条

时间:2018-03-10 22:03:23

标签: python regex

我写了一个Python脚本来读取文件并找到一个模式,现在我想打印结果而没有重复。谢谢你的帮助。

这就是我所拥有的,但它打印出重复的行。

import re

session = open("edd.txt", "r")
regex = re.compile(r'policy \d+')

for line in session:
    four_letter_words = regex.findall(line)
    for word in four_letter_words:
        print(word)

2 个答案:

答案 0 :(得分:1)

为避免重复,您的算法必须记住它到目前为止看到的所有输出。一种方法是:

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  if(s.getName() == "Members Registration" && r.getColumn() == 7 && r.getValue() == "Not Found") {
    var row = r.getLastRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("sheet18");
    var target1 = targetSheet.getRange(targetSheet.getLastRow() + 1, 2);
    var target2 = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 2, 1, 1).copyTo(target1);
    s.getRange(row, 5, 1, 1).copyTo(target2);
  }
}

答案 1 :(得分:0)

您也可以使用set,这会为您删除重复项。

all_four_letter_words = set()

for line in session:
    four_letter_words = regex.findall(line)
    for word in four_letter_words:
        all_four_letter_words.add(word)

然后您可以根据需要使用set。虽然请记住set是未排序的,所以当你遍历它们时,它们将不会保留它们的顺序。