comment gérer les caractères dupliqués dans regex


catominor

J'utilise cette expression régulière pour trouver TOUTES les occurrences suivantes dans un tableau :

/^.*(?=.*T)(?=.*O)(?=.*T)(?=.*A).*$/

ça correspond

pOTATO
mATTO
cATeTO

mais aussi

lATO
minAreTO
AnTicO

bien que ces trois derniers mots n'aient qu'un T

comment puis-je extraire uniquement des mots contenant au moins deux T, un A et un O, dans n'importe quel ordre ?

Wiktor Stribiżew

Étant donné que les lookarounds tiennent bon , une fois que le premier lookaround est essayé, le suivant et tous les suivants après le premier lookaround sont vérifiés exactement à partir de la même position.

Vous devez utiliser

/^(?=.*T.*T)(?=.*O)(?=.*A).*/
/^(?=.*T[^T]*T)(?=.*O)(?=.*A).*/

Notez le manquant .*après ^, ce n'est pas nécessaire car il suffit de ne déclencher les anticipations qu'une seule fois à la position de départ de la chaîne. Maintenant, (?=.*T.*T)assurez-vous qu'il y a deux répétitions de zéro ou plusieurs caractères autres que les caractères de saut de ligne autant que possible suivis d'un caractère T. (?=.*T[^T]*T)s'assure qu'il y a zéro ou plusieurs caractères autres que les caractères de saut de ligne autant que possible, puis Tzéro ou plusieurs caractères autres que Tet puis un autre T.

Voir démo regex #1 et démo regex #2 . Notez que cela (?=.*T[^T]*T)peut correspondre à plus que (?=.*T.*T)car [^T]peut correspondre à des caractères de saut de ligne. Pour éviter cela dans la démo, j'ai ajouté \ndans la classe de caractères négative.

Articles connexes


Comment gérer les caractères indésirables dans Sqoop

Prabhanj Lors de l'importation de données du RDMS vers Hadoop à l'aide de sqoop. Si mon système source contient des caractères indésirables, comment pouvons-nous les remplacer Par exemple: 1, jeu de mots, voyage, Jagrut Sharma La définition des caractères indé

Comment gérer les caractères spéciaux dans JSON

Shanthamma DS J'ai une définition de colonne pour la grille, j'essaye de la mettre dans une charge JSON n. Il y a quelques caractères spéciaux et fonctions pour lesquels j'obtiens une erreur JSON non valide [ { "headerName":"", "field":"",

Comment gérer les caractères accentués en python?

Zeno Dalla Valle Je sais qu'il y a beaucoup de matériel à ce sujet, mais je ne peux pas trouver de solution à mon problème. J'ai ce texte écrit dans un fichier txt que je dois manipuler, etc. et il contient beaucoup de caractères accentués. Je ne peux pas les

tesseract - comment gérer les séparateurs de caractères

jackluo923 Comment gérer la reconnaissance du texte à l'intérieur des séparateurs de caractères avec tesseract (pré-traitement ou via une configuration tesseract spéciale) de manière appropriée, en particulier le type en peigne (3e image), comme dans ces trois

Comment gérer les blocs dupliqués

GeunYoung.Kim J'ai couru sonarqube, mais il m'a informé de l'erreur "Blocs dupliqués" dans la classe Or et Argent. J'ai modifié beaucoup de choses, mais cela n'a pas résolu le problème Voici ma source L'or et l'argent prolongent le plan Voici un plan. public a

Regex pour supprimer les caractères et combinaisons dupliqués

Eugène J'ai une chaîne qui se compose de mots qui ont des caractères dupliqués à la fin. Ces caractères peuvent être dans de telles combinaisons: wordxxxx wordxyxyxy motxyzxyzxyz Par exemple: string = "Thisssssssss isisisis echooooooo stringggg. Replaceaceacea

Supprimer les caractères dupliqués à l'aide de regex

HaiHey Comment supprimeriez-vous les caractères dupliqués dans l'expression régulière alors que certains caractères sont censés être répétés? Par exemple, j'ai "BBAALLLLOOOONN" et je veux que la sortie soit juste BALLOON. J'ai essayé ce regex: /(.)(?=\1)/g mai

comment valider les caractères ET les mots dans regex?

neokio Le contexte J'ai besoin d'un peu de code qui prend une chaîne mathématique très simple et exécute la eval()fonction PHP . Par exemple ... $math = '25 * (233 - 1.5)'; echo eval("return $math;"); // returns 5787.5 Cependant, eval()c'est assez dangere