0
votes

Comment faire une expression régulière pour n'importe quel caractère et espace blanc

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 Preg_Match 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 "" xxx

EDIT: 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"

Voici mon Query: xxx


8 commentaires

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!


3 Réponses :


1
votes

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.

regex: '(?: \ w + | \ s +) {1,}'

Si vous ne souhaitez pas capturer le soulignement, vous pouvez utiliser ce qui suit:

regex: '([a-za-z0-9] + | \ s +) {1,}'


2 commentaires

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.



0
votes

La solution que j'ai réussi à trouver est-ce: Pour expression de regex, j'ai utilisé: xxx

et pour la requête que j'ai utilisée: xxx


0 commentaires

0
votes

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.

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.

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.

regex: '(?: \ w + | \ s +) {1,}'

Si vous ne souhaitez pas capturer le soulignement, vous pouvez utiliser ce qui suit:

regex: '([a-za-z0-9] + | \ s +) {1,}


0 commentaires