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.