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.

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).


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());
  }
}

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
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.