# -*- coding: utf-8 -*-
import re
# Función para reemplazar texto usando expresiones regulares
def replace_text(find_text, replace_text, is_regex=False):
text = editor.getText()
if is_regex:
new_text = re.sub(find_text, replace_text, text)
else:
new_text = text.replace(find_text, replace_text)
editor.setText(new_text)
# Función para eliminar líneas duplicadas de manera eficiente
def remove_duplicates():
lines_seen = set()
lines = editor.getText().splitlines()
unique_lines = [line for line in lines if line not in lines_seen and not lines_seen.add(line)]
editor.setText("\n".join(unique_lines))
print("{} líneas duplicadas eliminadas.".format(len(lines) - len(unique_lines)))
# Función para conservar líneas con coincidencias de patrones
def keep_matching_lines(patterns, is_regex=False):
text = editor.getText()
lines = text.splitlines()
compiled_patterns = [re.compile(pattern) if is_regex else re.compile(re.escape(pattern)) for pattern in patterns]
matching_lines = []
for line in lines:
for regex in compiled_patterns:
if regex.search(line):
matching_lines.append(line)
break # Dejar de buscar en otros patrones si ya hemos encontrado una coincidencia
editor.setText("\n".join(matching_lines))
print("{} líneas conservadas con los patrones proporcionados.".format(len(matching_lines)))
# Reemplazar espacios por dos puntos
replace_text(" ", ":")
# Reemplazar con expresión regular (eliminar la primera parte)
replace_text(r"(.+):(.+):(.+)", r"\2:\3", is_regex=True)
# Eliminar líneas duplicadas
remove_duplicates()
# Lista de patrones a buscar y conservar
patterns = [
r"(?<!\S)[\w\.-]+@[\w\.-]+\.\w+:[^\s]+", # Nuevo patrón
"unknown",
"https://",
"http://",
"//",
"/:"
]
# Conservar líneas para cada patrón
keep_matching_lines(patterns, is_regex=True)
import re
# Función para reemplazar texto usando expresiones regulares
def replace_text(find_text, replace_text, is_regex=False):
text = editor.getText()
if is_regex:
new_text = re.sub(find_text, replace_text, text)
else:
new_text = text.replace(find_text, replace_text)
editor.setText(new_text)
# Función para eliminar líneas duplicadas de manera eficiente
def remove_duplicates():
lines_seen = set()
lines = editor.getText().splitlines()
unique_lines = [line for line in lines if line not in lines_seen and not lines_seen.add(line)]
editor.setText("\n".join(unique_lines))
print("{} líneas duplicadas eliminadas.".format(len(lines) - len(unique_lines)))
# Función para conservar líneas con coincidencias de patrones
def keep_matching_lines(patterns, is_regex=False):
text = editor.getText()
lines = text.splitlines()
compiled_patterns = [re.compile(pattern) if is_regex else re.compile(re.escape(pattern)) for pattern in patterns]
matching_lines = []
for line in lines:
for regex in compiled_patterns:
if regex.search(line):
matching_lines.append(line)
break # Dejar de buscar en otros patrones si ya hemos encontrado una coincidencia
editor.setText("\n".join(matching_lines))
print("{} líneas conservadas con los patrones proporcionados.".format(len(matching_lines)))
# Reemplazar espacios por dos puntos
replace_text(" ", ":")
# Reemplazar con expresión regular (eliminar la primera parte)
replace_text(r"(.+):(.+):(.+)", r"\2:\3", is_regex=True)
# Eliminar líneas duplicadas
remove_duplicates()
# Lista de patrones a buscar y conservar
patterns = [
r"(?<!\S)[\w\.-]+@[\w\.-]+\.\w+:[^\s]+", # Nuevo patrón
"unknown",
"https://",
"http://",
"//",
"/:"
]
# Conservar líneas para cada patrón
keep_matching_lines(patterns, is_regex=True)