Je fais un formulaire de recherche, je souhaite donc que l'utilisateur entrave n'importe quel mot ou chaîne contenant alphanumérique et espace entre les mots.
Je veux permettre alpha numérique et espaces dans la barre de recherche mais jusqu'à présent, je n'ai pas réussi. J'ai fait des recherches sur Google pour trouver quelque chose qui peut m'aider à le faire, mais jusqu'à présent pas de chance. J'ai besoin de votre aide sur la façon d'écrire l'expression régulière pour EDIT: FORT >
Après avoir passé au fond de ce qui se passe et ce que je veux réaliser, j'ai découvert que le problème est avec ma requête et non ma regex!
Si l'utilisateur entre par exemple le prénom et le nom de famille, par exemple John Doe, je souhaite que le résultat de la recherche se retrouve avec John Doe de la base de données! donc j'ai besoin s'il vous plaît votre aide avec ma requête sur Comment puis-je faire cette réalisable, j'ai 2 colonnes une pour la prénom qui est "Nom" et un pour le nom de famille "Last_Name" P> Voici mon Query: p> Preg_Match Code>
Donc, ce que j'essaie de faire ici est de remplacer tout caractère qui n'est pas 0-9 AZ AZ et de l'espace être remplacé par "" p>
3 Réponses :
Vous pouvez utiliser le regex suivant, qui trouvera tous les alphabets indépendamment des cas. A-Z, A-Z, 0-9, espaces blancs qui comprend des onglets et un soulignement. P>
regex: '(?: \ w + | \ s +) {1,}' p>
Si vous ne souhaitez pas capturer le soulignement, vous pouvez utiliser ce qui suit: P>
regex: '([a-za-z0-9] + | \ s +) {1,}' p>
Merci pour votre réponse, après avoir vérifié ce que je veux faire le problème, c'est avec la requête, j'ai édité la question
Vous devez mettre à jour la requête comme suit. Votre regex ici doit être remplacé par la regex que vous souhaitez utiliser. J'espère que cela vous aidera, sinon, veuillez revenir avec votre problème. Sélectionnez * à partir de user_table où Regexp_like (Nom, «Votre regex ici») ou Regexp_Like (last_name, «votre regex ici») ou Regexp_like (nom d'utilisateur, «votre regex ici»); Si vous utilisez votre variable de regex dans la requête, imprimez la requête et assurez-vous que la requête est générée correctement.
La solution que j'ai réussi à trouver est-ce:
Pour expression de regex, j'ai utilisé: et pour la requête que j'ai utilisée: p>
Vous devez mettre à jour la requête comme suit. Votre regex ici doit être remplacé par la regex que vous souhaitez utiliser. J'espère que cela vous aidera, sinon, veuillez revenir avec votre problème. p>
SELECT * de user_table où regexp_like (Nom, "votre regex ici") ou regexp_ike (last_name, "Votre regex ici") ou regexp_like (nom d'utilisateur, "votre regex ici"); Si vous utilisez votre variable de regex dans la requête, imprimez la requête et assurez-vous que la requête est générée correctement. P>
Utilisez regex selon vos besoins .--> Vous pouvez utiliser la regex suivante, qui trouvera tous les alphabets indépendamment des cas. A-Z, A-Z, 0-9, espaces blancs qui comprend des onglets et un soulignement. P>
regex: '(?: \ w + | \ s +) {1,}' p>
Si vous ne souhaitez pas capturer le soulignement, vous pouvez utiliser ce qui suit: P>
regex: '([a-za-z0-9] + | \ s +) {1,} p>
J'ai déjà posé des questions similaires avant, ici
@Pocountant م J'ai essayé ceci $ SearchQ = Preg_replace ("/.?/", "", $ SearchQ); Mais lorsque je saisi la chaîne, il renvoie chaque résultat que vous trouverez dans la base de données même s'il ne correspond pas à la chaîne recherchée!
@Nelson mais je fais ma recherche en utilisant php uniquement et pas ajax
@Pocountant م J'utilise la même chose que vous avez fait dans votre message mais aucun ne me donne ce dont j'ai besoin. J'ai besoin de la recherche si je suis entré dans une chaîne disons "ceci est une chaîne" qui contient aussi des espaces pour pouvoir le récupérer de la base de données
Quelle est la chaîne que vous souhaitez que l'utilisateur entrave (recherchez-vous), vous récupérez donc "Ceci est une chaîne" de votre base de données?
J'ai donné un exemple, la chaîne peut être n'importe quoi, la fonction de recherche recherchera le nom de famille, le prénom, le message, tout champ sur le site Web qui incluent des espaces et des pauses de ligne
Ce que je veux dire de mon match de preg est que n'importe quel caractère autre que 0-9 A-Z et espaces sont remplacés par "", c'est ce que je veux
Ok je pense que mon problème est avec la requête et non la regex!