Además de los operadores descritos en la sección de búsqueda avanzada, DocGoblin también te permite usar comodines y expresiones regulares para crear patrones de búsqueda más flexibles.
Comodines
Los comodines son caracteres especiales que sustituyen a uno o varios caracteres de una palabra. Los dos comodines disponibles son ? y *.
El comodín ? sustituye a un único carácter. Por ejemplo, la búsqueda te?t encontrará test, text y cualquier otra palabra de cuatro letras que empiece por te y termine en t.
El comodín * sustituye a cero o más caracteres. Por ejemplo, la búsqueda test* encontrará test, tests, testing y cualquier otra palabra que empiece por test.
Puedes combinar ambos comodines en una misma búsqueda. Por ejemplo, la búsqueda t?st* encontrará test, testing, tastes y cualquier otra palabra que coincida con este patrón.
Expresiones regulares
Las expresiones regulares (regex) son una forma potente de describir patrones de texto. DocGoblin admite un subconjunto de la sintaxis regex a través de Apache Lucene.
Para usar una regex en tu búsqueda, coloca el patrón entre barras: /pattern/. Las siguientes secciones describen las construcciones regex más útiles.
Cualquier carácter
El punto . coincide con cualquier carácter individual. Es el equivalente en regex del comodín ?.
Ejemplos:
/s.ake//.nak./
Una o más apariciones
El signo más + coincide con una o más apariciones del carácter precedente.
Ejemplo (coincide con der, deer, deeer, etc.):
/de+r/
Cero o más apariciones
El asterisco * coincide con cero o más apariciones del carácter precedente.
Ejemplo (coincide con wd, wed, weed, etc.):
/we*d/
Cero o una aparición
El signo de interrogación ? coincide con cero o una aparición del carácter precedente, haciéndolo opcional.
Ejemplo (coincide con wed y weed):
/wee?d/
Apariciones mínimas y máximas
Las llaves {} te permiten especificar un número exacto o un rango de apariciones del carácter precedente:
{5}— exactamente 5 apariciones{2,5}— entre 2 y 5 apariciones{2,}— al menos 2 apariciones
Ejemplos:
/we{2}d//we{2,}d//we{2,5}d/
Agrupación
Los paréntesis () te permiten agrupar caracteres para que los cuantificadores se apliquen a todo el grupo en lugar de a un único carácter.
Ejemplos:
/w(..)+d//w(ee)*d//w(ee)?d/
Alternancia
La barra vertical | coincide con la expresión situada a su izquierda o con la situada a su derecha. Normalmente se utiliza dentro de un grupo.
Ejemplo (coincide con preparations y proportions):
/(prepara|propor)tions/
Clases de caracteres
Las clases de caracteres te permiten hacer coincidir un único carácter con un conjunto de caracteres.
Se define una clase de caracteres colocando los caracteres aceptados entre corchetes []. También puedes especificar un rango de caracteres usando un guion -.
Formas disponibles:
[abc]— coincide con a, b o c[a-c]— coincide con a, b o c (forma de rango)[-abc]— coincide con -, a, b o c[abc-]— coincide con a, b, c o -[^abc]— coincide con cualquier carácter excepto a, b o c[^a-c]— coincide con cualquier carácter excepto a, b o c (forma de rango)[^-abc]— coincide con cualquier carácter excepto -, a, b o c
Como se muestra arriba, el acento circunflejo ^ al principio de una clase de caracteres la niega, coincidiendo con cualquier carácter que no esté en el conjunto.
Las clases de caracteres pueden combinarse con todas las demás construcciones regex para crear patrones de búsqueda complejos.
Para recuperar la cadena «weed», se podría usar la siguiente expresión:
/w[uiaeo]+d//w[uiaeo]*d//we[uiaeo]?d//w[a-u]*ed//we[^uiao]d/
Más información
DocGoblin utiliza el motor regex de Apache Lucene. Para la referencia completa de la sintaxis, consulta la documentación oficial de Lucene.
Si quieres experimentar con expresiones regulares en un entorno de pruebas, prueba regex101.com, un probador de regex en línea gratuito.