Jak stworzyć filtr Gmaila wyszukujący tekst tylko na początku tematu?


113

Otrzymujemy regularne automatyczne komunikaty o kompilacji z serwerów kompilacji Jenkins w pracy.

Byłoby miło wyłowić je na etykiecie, pomijając skrzynkę odbiorczą.

Korzystanie z filtra to oczywiście właściwy wybór.

Żądanym identyfikatorem jest ciąg znaków [RELEASE]na początku tematu.

Próba określenia któregokolwiek z poniższych wyrażeń regularnych powoduje, że e-maile zawierające ciąg znaków releasew każdym przypadku w dowolnym miejscu w temacie zostaną dopasowane:

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

Z tego, co przeczytałem później, Gmail nie obsługuje standardowej obsługi wyrażeń regularnych, az eksperymentów wynika, że ​​podobnie jak w przypadku wyszukiwania Google, znaki specjalne są po prostu ignorowane.

Dlatego szukam parametr wyszukiwania, które mogą być wykorzystane, może coś podobnego atstart:mystringw zgodzie z ich has:, in:notacji.

Czy jest sposób, aby wymusić dopasowanie tylko wtedy, gdy występuje na początku wiersza i tylko w przypadku, gdy są uwzględnione nawiasy kwadratowe?

Serdeczne dzięki.


Nie powinienem ^\[RELEASE\].*załatwić sprawy, czy źle rozumiem, co chcesz zrobić?
Hauns TM

Nie, niezależnie od znaków ucieczki, ten format wyrażenia regularnego nie działa. Z tego, co przeczytałem, gmail nie obsługuje standardowej obsługi wyrażeń regularnych, az eksperymentów wynika, że ​​podobnie jak w przypadku wyszukiwania Google, znaki specjalne są po prostu ignorowane. Szukam „tajnego” flagi lub takich, które mogą być używane”może coś podobnego atstart:mystringw zgodzie z ich has:, in:notacji. Dodam te informacje do mojego postu w celu wyjaśnienia, mimo wszystko dziękuję.
KomodoDave

Odpowiedzi:


148

Regex nie znajduje się na liście funkcji wyszukiwania i znajdował się na (mniej więcej, ponieważ Lepsza funkcja wyszukiwania wiadomości (tj. Wyszukiwanie wieloznaczne i częściowe wyszukiwanie słów) ) na liście gotowych żądań funkcji , więc odpowiedź brzmi „nie możesz tego zrobić to za pośrednictwem interfejsu internetowego Gmaila ”:-(

Nie ma obecnie żadnych funkcji Labs, które to oferują. Filtry SIEVE to inny sposób na zrobienie tego, który również nie był obsługiwany , wydaje się, że w pomocy Gmaila nie ma już żadnego ostatecznego oświadczenia na temat obsługi SIEVE.

Zaktualizowano z powodu rotacji linków Wstępnie przygotowana lista żądań funkcji była, eee, konserwowana, oryginał znajduje się na archive.org z 2012 r., Teraz po prostu zostajesz przekierowany na nudną stronę z informacją, jak przekazać opinię. Brak obsługi SIEVE został omówiony w odpowiedzi 78761 Czy Gmail obsługuje wszystkie funkcje IMAP? , od jakiegoś czasu w 2015 roku ta odpowiedź po cichu przekierowuje na odpowiedź o konfiguracji klienta IMAP, archive.org posiada kopię z 2014 roku.

Przy obecnej funkcji wyszukiwania nawiasy dowolnej formy () {} []są używane do grupowania, nie mają one zauważalnego efektu, jeśli jest tylko jeden termin. Używanie (aaa|bbb)i [aaa|bbb]są równoważne i oba znajdują słowa aaalub bbb. Większość innych znaków interpunkcyjnych, w tym \, jest traktowana jako spacja lub separator wyrazów + - :i "ma jednak specjalne znaczenie, zobacz pomoc .

Od 2016 r. {term1 term2}Udokumentowano tylko formularz „ ”, który jest odpowiednikiem wyszukiwania „ term1 OR term2”.

Państwo może zrobić regex wyszukiwania na pocztę głosową (w pewnych granicach) programowo poprzez Google Docs: http://www.labnol.org/internet/advanced-gmail-search/21623/ ma źródło pokazujące, jak można to zrobić (skopiować dokument, następnie Tools > Script Editor, aby uzyskać kompletne źródło).

Możesz to również zrobić przez IMAP, jak opisano tutaj: Python IMAP wyszukuje częściowy temat i skryptuje coś, aby przenieść wiadomości do innego folderu. Czasownik IMAP SEARCH obsługuje tylko podciągi, a nie wyrażenie regularne (wyszukiwanie w Gmailu jest ponadto ograniczone do pełnych słów, a nie podciągów), potrzebne byłoby dalsze przetwarzanie dopasowań w celu zastosowania wyrażenia regularnego.

Dla kompletności, ostatnie obejście: Gmail obsługuje adresowanie plus , jeśli możesz zmienić adres docelowy na ten adres youraddress+jenkinsrelease@gmail.com, zostanie on nadal wysłany do Twojej skrzynki pocztowej, gdzie możesz filtrować według adresu odbiorcy. Pamiętaj, aby filtrować przy użyciu pełnego adresu e-mail to:youraddress+jenkinsrelease@gmail.com. To oczywiście mniej więcej to samo, co skonfigurowanie w tym celu dedykowanego adresu Gmail :-)


Czy istnieje znak zmiany znaczenia do wyszukiwania nawiasów lub znaków interpunkcyjnych?
Aron,

@Aron, nie sądzę. Chociaż niektóre znaki interpunkcyjne są obsługiwane specjalnie (np. Związane z kodem c++), najlepiej jest myśleć o wyszukiwaniu jako o działaniu tylko na wstępnie zindeksowanych słowach.
pan spuratic

Myślę, że możesz użyć podwójnego cudzysłowu "w celu zmiany znaczenia nawiasów. Używam w moich filtrach i wygląda na to, że działa. Jeśli użyję,subject: {[term1] (part of term2} znajdę wszystkie wiadomości zawierające zarówno termin1, jak i część term2 w temacie. Ale dzięki formularzowi, subject:{"[term1] (part of term2"}który znajduję wszystkie wiadomości z tematami zaczynającymi się dokładnie od [term1] (część
terminu 2

1

Jedyną opcją, jaką znalazłem, jest znalezienie dokładnego sformułowania i umieszczenie go w opcji „Zawiera słowa”. To nie jest najlepsza opcja, ale działa.


-7

Zastanawiałem się, jak to zrobić sam; wygląda na to, że Gmail po cichu zaimplementował tę funkcję. Stworzyłem następujący filtr:

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

A potem wysłałem wiadomość z tematem

[test] foo

A wiadomość została zarchiwizowana! Wydaje się więc, że wszystko, co jest potrzebne, to utworzyć filtr dla przedrostka tematu, który chcesz obsługiwać.


5
Zwróć uwagę, że jeśli wyślesz wiadomość o temacie „test foo”, Twój filtr również ją przechwyci. „[test]” w rzeczywistości wyszukuje tylko „test” =)
Daniel Gill

25
Oto wskazówka: jeśli chcesz przetestować jakiś pomysł, spróbuj znaleźć sposób, aby go obalić. W twoim przypadku napisałeś filtr przechwytujący nawiasy kwadratowe, a twój test oczekiwał, że filtr zadziała. Powinieneś go przetestować, spodziewając się niepowodzenia, jak zauważył @DanielGill. :)
pedromanoel
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.