Selon la documentation de Google Query:
matches - Un match d’expression régulière (preg). haystack correspond à needle est vrai si l'expression régulière dans needle correspond à haystack. Exemples: où le pays correspond à '. * Ia' correspond à l'Inde et au Nigeria, mais pas à l'Indiana. Notez qu'il ne s'agit pas d'une recherche globale. Par conséquent, la correspondance entre pays correspond à "un" ne correspond pas à "Canada".
J'ai essayé de l'utiliser dans la formule =query('Общий список'!A3:V;"select * where B matches '/[A-Z]+/' ")
, mais la requête renvoie une sortie vide.
Référence: https://developers.google.com/chart/interactive/docs/querylanguage#Where
Notez que ce n'est pas une recherche globale ...
Cette phrase explique ce qui se passe: contrairement à la correspondance dans regexmatch
, la clause matches
du langage de requête requiert que la chaîne entière corresponde à l'expression régulière donnée. Ainsi, si vous souhaitez faire correspondre des chaînes dont une partie correspond à une expression régulière re
, elle doit être encapsulée dans .*
:
select * where A matches '.*re.*'
Juste une supposition, mais OP peut vouloir quelque chose comme ça:
=query(A:A, "Select A where A matches '.*/[A-Z]+/.*' ")
pour sélectionner dans ColumnA uniquement les cellules ne contenant que des lettres majuscules de l'alphabet latin entre deux virgulas suspensiva (barres obliques), que ce soit ou non avec les autres caractères.