Wyszukaj znaki specjalne, takie jak „!” W temacie Gmaila

30

Czy ktoś wie, czy w Gmailu można wyszukiwać wszystkie wiadomości, które zawierają wykrzyknik w temacie?

Chciałbym utworzyć filtr, który doda czerwoną !etykietę do wiadomości, które zawierają wykrzyknik w temacie. Ale szukanie subject:!wyników we wszystkich wiadomościach. Próbowałem rzeczy jak /!/, /\!/, (/\!/), "!", ale wszystkie te pytania daj mi wszystkie wiadomości, nie tylko tych z !tematem.

jankeir
źródło

Odpowiedzi:

18

Z dokumentacji „ Informacje o wyszukiwaniu w Gmailu ”:

Gmail nie rozpoznaje specjalnych znaków wyszukiwania, takich jak nawiasy kwadratowe, nawiasy, symbole walut, znaki handlowe i znak funta oraz gwiazdki.

Jak się wydaje, już odkryłeś, a moje szybkie testy wydają się potwierdzać, wydaje się, że zawiera znak wykrzyknika.

Zakładam, że wyrażenie regularne, którego Google używa do dopasowania wyszukiwanych haseł z możliwymi wynikami, po prostu wyklucza wszystkie znaki specjalne i działa tylko na „znakach słów” (możesz to nieco potwierdzić przez fakt, że wyszukiwanie znaku podkreślenia _, działa - podkreślenie jest traktowane jako znak słowny w wyrażeniu regularnym).

James Allardice
źródło
1
Dzięki, nie to, co chciałem usłyszeć, ale przynajmniej wiem, że będę musiał wymyślić coś innego dla moich potrzeb.
jankeir
Co z myślnikiem „-”?
Pacerier
Myślnik w wyszukiwaniu jest NOToperatorem. Nie będzie w stanie wyszukać dla myślnikiem.
ale
1
@ Google dla firmy wyszukiwania, to naprawdę OGROMNA dziura w twoim systemie, która nie może wyszukiwać znaków specjalnych. Każda inna wyszukiwarka na świecie może to zrobić, ale nie Google? tisk, tisk, tisk ...
MikeyE,
11

Za pomocą Google Apps Script możesz używać wyrażeń regularnych w Gmailu, aby znaleźć wiadomości ze znakiem wykrzyknika w temacie.

Ten sam skrypt można rozszerzyć, aby zastosować filtry Gmaila do wiadomości pasujących do wyrażenia.

Aktualizacja: oto fragment skryptu aplikacji, który powinien pomóc Ci znaleźć odpowiednie wiadomości:

var pattern = "^!";
var threads = GmailApp.search("in:inbox");

for (var i = 0; i < threads.length; i++) { 
  var messages = threads[i].getMessages();

  for (var m = 0; m < messages.length; m++) {
      var subject = messages[m].getSubject();
      if (subject.search(pattern) !== -1) 
         Logger.log("https://mail.google.com/mail/u/0/#all/" + messages[m].getId());
  }
}
Amit Agarwal
źródło
Dzięki Amit, dobra sugestia, chociaż obawiam się, że użycie go sprawi, że dostanę się do limitu skryptu aplikacji nawet więcej niż już.
jankeir
Prawdziwe. W tej chwili nie mogę wymyślić żadnego innego obejścia.
Amit Agarwal,
wydaje się, że jest to również problem dla klientów poczty IMAP uzyskujących dostęp do Gmaila - stackoverflow.com/q/9589583/94687 . Tak więc samo użycie zewnętrznego klienta IMAP do tego rodzaju wyszukiwań nie jest rozwiązaniem (chyba że klient sam dokonuje filtrowania, bez polegania na odpowiedziach serwera SEARCH).
imz - Ivan Zakharyaschev