Maison  >  Article  >  développement back-end  >  Comment rendre un mot entier facultatif dans une expression régulière ?

Comment rendre un mot entier facultatif dans une expression régulière ?

PHPz
PHPzavant
2024-02-09 10:36:09415parcourir

Comment rendre un mot entier facultatif dans une expression régulière ?

l'éditeur php Banana vous présentera comment rendre le mot entier facultatif dans les expressions régulières dans cet article. Les expressions régulières sont de puissants outils de correspondance de texte qui peuvent être utilisés pour rechercher, remplacer et valider des chaînes. Parfois, nous souhaitons qu'un certain mot soit facultatif lors de la correspondance, c'est-à-dire que le mot peut apparaître dans la chaîne, mais il n'a pas non plus besoin d'apparaître. Avec quelques techniques simples, nous pouvons implémenter cette fonction dans des expressions régulières pour rendre la correspondance plus flexible et plus complète. Voyons ensuite les méthodes spécifiques !

Contenu de la question

Autrement dit, je souhaite personnaliser mon regex pour reconnaître ce qui suit apple 和柠檬apple 柠檬apple 和 以及 apple。我希望 andlemon 是可选的,目前我只设法使 and 可选,而不是 lemon .

Ce serait formidable si cela pouvait être réalisé en utilisant le format regex actuel.

Expression régulière :

\b([a][\W_]*?)+([p][\W_]*?)+([p][\W_]*?)+([l][\W_]*?)+([e][\W_]*?)+(([a][\W_]*?)+([n][\W_]*?)+([d][\W_]*?))?([l][\W_]*?)+([e][\W_]*?)+([m][\W_]*?)+([o][\W_]*?)+([n][\W_]*?)+\b

Expressions régulières 101 :

https://regex101.com/r/wte6gg/2

Solution

L'expression suivante doit commencer par "pomme", puis peut être suivie de "citron" et "et", si les deux suivent, alors vous il faut suivre l'ordre de "et Citron" est-ce que cela aide?

b(苹果)( ?和)?( ?柠檬)?b

https://www.php.cn/link/11eba2991cc62daa4a85be5c0cfdae97

Modifier

Avec votre format, les éléments suivants devraient fonctionner :

b([a][W_]*?)+([p][W_]*?)+([p][W_]*?)+([l][W_] *?)+([e][W_]*?)+(([W_]*)([a][W_]*?)+([n][W_]*?)+([ d][W_]*?)+)?(([W_]*)([l][W_]*?)+([e][W_]*?)+([m][ W_]*?)+([o][W_]*?)+([n][W_]*?)+)?b

https://www.php.cn/link/00693ceec3aa42db186efa62ed8917d2

Si c'est ce que vous recherchez, veuillez le marquer comme réponse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer