Come creare un filtro Gmail cercando testo solo all'inizio della riga dell'oggetto?


113

Riceviamo regolarmente messaggi di build automatizzati dai server di build Jenkins al lavoro.

Sarebbe bello portarli via in un'etichetta, saltando la posta in arrivo.

L'uso di un filtro è ovviamente la scelta giusta.

L'identificatore desiderato è la stringa [RELEASE]all'inizio di una riga dell'oggetto.

Il tentativo di specificare una delle seguenti regex fa sì che le e-mail con la stringa releasein qualsiasi caso nella riga dell'oggetto corrispondano:

\[RELEASE\]*
^\[RELEASE\]
^\[RELEASE\]*
^\[RELEASE\].*

Da quello che ho letto successivamente, Gmail non ha il supporto per le espressioni regolari standard e dalla sperimentazione sembra, come con la ricerca su Google, i caratteri speciali vengono semplicemente ignorati.

Sto quindi cercando un parametro di ricerca che può essere utilizzato, forse qualcosa di simile atstart:mystringin linea con le loro has:, in:notazioni.

C'è un modo per forzare la corrispondenza solo se si verifica all'inizio della riga e solo nel caso in cui siano incluse le parentesi quadre?

Ringraziamenti sinceri.


Non dovresti ^\[RELEASE\].*fare il trucco o fraintendo quello che vuoi fare?
Hauns TM

No, indipendentemente dagli escape, il formato regex non funziona. Da quello che ho letto, Gmail non ha il supporto standard per le espressioni regolari e dalla sperimentazione sembra che, come con la ricerca su Google, i caratteri speciali vengano semplicemente ignorati. Sto cercando una bandiera "segreto" o tali che può essere utilizzato' forse qualcosa di simile atstart:mystringin linea con le loro has:, in:notazioni. Aggiungerò queste informazioni nel mio post per chiarimenti, grazie comunque.
KomodoDave

Risposte:


148

Regex non è nell'elenco delle funzionalità di ricerca ed era (più o meno, come Funzionalità di ricerca dei messaggi migliori (ad esempio, caratteri jolly e ricerca di parole parziali) ) l'elenco delle richieste di funzionalità predefinite , quindi la risposta è "non puoi fare questo tramite l'interfaccia utente web di Gmail ":-(

Non ci sono funzionalità di Labs correnti che lo offrono. I filtri SIEVE sarebbero un altro modo per farlo, anche questo non era supportato , sembra che non ci sia più alcuna dichiarazione definitiva sul supporto di SIEVE nella guida di Gmail.

Aggiornato per la decomposizione dei collegamenti L'elenco predefinito delle richieste di funzionalità era, ehm, l'originale è su archive.org datato 2012, ora vieni reindirizzato a una pagina stupida che ti dice come dare feedback. La mancanza di supporto SIEVE è stata trattata nella risposta 78761 Gmail supporta tutte le funzionalità IMAP? , poiché nel 2015 quella risposta reindirizza silenziosamente alla risposta sulla configurazione del client IMAP, archive.org ha una copia datata 2014.

Con l'attuale funzione di ricerca, le parentesi di qualsiasi forma () {} []vengono utilizzate per il raggruppamento, non hanno alcun effetto osservabile se c'è un solo termine all'interno. L'uso di (aaa|bbb)e [aaa|bbb]è equivalente ed entrambi troveranno parole aaao bbb. La maggior parte degli altri caratteri di punteggiatura, tra cui \, vengono trattati come uno spazio o una parola-di separazione, + - :e "fare hanno un significato speciale però, vedere l' aiuto .

A partire dal 2016, solo il modulo " {term1 term2}" è documentato per questo, ed è equivalente alla ricerca " term1 OR term2".

È possibile effettuare ricerche regex sulla tua casella di posta (entro certi limiti) di programmazione tramite Google docs: http://www.labnol.org/internet/advanced-gmail-search/21623/ è che mostra come fonte si può fare (copiare il documento, quindi Tools > Script Editorper ottenere la fonte completa).

Puoi anche farlo tramite IMAP come descritto qui: Python ricerca IMAP per oggetto parziale e script qualcosa per spostare i messaggi in una cartella diversa. Il verbo RICERCA IMAP supporta solo sottostringhe, non regex (la ricerca di Gmail è ulteriormente limitata alle parole complete, non alle sottostringhe), sarebbe necessaria un'ulteriore elaborazione delle corrispondenze per applicare una regex.

Per completezza, un'ultima soluzione alternativa è: Gmail supporta l' indirizzamento plus , se puoi modificare l'indirizzo di destinazione youraddress+jenkinsrelease@gmail.comverrà comunque inviato alla tua casella di posta dove puoi filtrare per indirizzo del destinatario. Assicurati di filtrare utilizzando l'indirizzo email completo to:youraddress+jenkinsrelease@gmail.com. Ovviamente è più o meno la stessa cosa che impostare un indirizzo Gmail dedicato per questo scopo :-)


Esiste un carattere di escape per cercare parentesi o punteggiatura?
Aron

@Aron Non ci credo. Sebbene alcuni segni di punteggiatura siano gestiti in modo speciale (relativi al codice, come c++) è meglio pensare che la ricerca funzioni solo su parole preindicizzate.
mr.spuratic

Penso che tu possa usare le virgolette doppie "per sfuggire alle parentesi. Sto usando nei miei filtri e sembra che funzioni. Se uso subject: {[term1] (part of term2}trovo tutti i messaggi che contengono sia il termine1 che parte del termine2 nell'oggetto. Ma con la forma subject:{"[term1] (part of term2"}trovo tutti i messaggi con oggetto che iniziano esattamente con [term1] (parte del
termine2

1

L'unica opzione che ho trovato per farlo è trovare una formulazione esatta e metterla sotto l'opzione "Contiene le parole". Non è l'opzione migliore, ma funziona.


-7

Mi chiedevo come farlo io stesso; sembra che Gmail da allora abbia implementato silenziosamente questa funzione. Ho creato il seguente filtro:

Matches: subject:([test])
Do this: Skip Inbox

E poi ho inviato un messaggio con l'oggetto

[test] foo

E il messaggio è stato archiviato! Quindi sembra che tutto ciò che è necessario è creare un filtro per il prefisso del soggetto che desideri gestire.


5
Nota che se invii un messaggio con oggetto "test pippo", anche il tuo filtro lo catturerà. "[test]" cerca realmente solo "test" =)
Daniel Gill,

25
Ecco un suggerimento: quando vuoi testare un'idea, prova a trovare modi per smentirla. Nel tuo caso, hai scritto un filtro per catturare le parentesi quadre e il tuo test prevedeva che il filtro funzionasse. Dovresti testarlo aspettandoti che fallisca, come ha sottolineato @DanielGill. :)
pedromanoel
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.