Ejemplo de un booleano (Y) más Búsqueda con comodines, el que estoy usando el interior de un javascript Autocompletar plugin:
cadena para que coincida con: "mi palabra"
cadena a buscar: "estoy en busca de mis palabras divertidas dentro de este texto"
Es necesario la siguiente expresión regular: /^(?=.*my)(?=.*word).*$/im
Explicando:
^ posición de afirmar al principio de una línea
= positiva Lookahead
?.* coincide con cualquier carácter (excepto una línea nueva)
() Grupos
$ posición de afirmar al final de una línea
i modificador: insensibles. Sin distinción de mayúsculas y minúsculas (ignora el caso de [a-zA-Z])
m modificador: multilínea. Causas^y $ para que coincida con el inicio/final de cada línea (no sólo empezar/final de la cadena)
prueba la expresión regular aquí: https://regex101.com/r/iS5jJ3/1
lo tanto, puede crear una función javascript que:
- Reemplazar caracteres reservados de expresiones regulares para evitar errores
- dividir su cadena en espacios
- encapsular sus palabras dentro de los grupos de expresiones regulares
- crear un patrón de expresión regular
- Ejecutar el partido de expresiones regulares
Ejemplo:
function fullTextCompare(myWords, toMatch){
//Replace regex reserved characters
myWords=myWords.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
//Split your string at spaces
arrWords = myWords.split(" ");
//Encapsulate your words inside regex groups
arrWords = $.map(arrWords, function(n) {
return ["(?=.*"+n+")"];
});
//Create a regex pattern
sRegex = new RegExp("^"+arrWords.join("")+".*$","im");
//Execute the regex match
return(toMatch.match(sRegex)===null?false:true);
}
//Using it:
console.log(
fullTextCompare("my word","I'm searching for my funny words inside this text")
);
//Wildcards:
console.log(
fullTextCompare("y wo","I'm searching for my funny words inside this text")
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
yo sólo probé en http://regexpal.com/. Sin cigarro. Tal vez esto es un error con regexpal? – user366735
Lo siento. No importa, eso tenía sentido. Gracias. – user366735
¿Obtuviste esto para trabajar en regexpal? No podría. – paragbaxi