Qu'est ce qu'une expression régulière pour les caractères de contrôle?
Je vais essayer de faire correspondre un caractère de contrôle dans le formulaire de \^c où c est tout caractère valide pour les caractères de contrôle. J'ai cette expression régulière, mais il n'est pas actuellement en train de travailler: \\[^][@-z]
Je pense que le problème réside dans le fait que l'accent circonflexe (^) est la partie de la syntaxe des expressions régulières moteur d'analyse.
Qui n'a pas de sens pour moi. Est-il un anti-slash? Sont ces vrais caractères de contrôle, ou ASCII séquence impliquant le même? Pourquoi aller \c@ .. \cZ seulement? Il y a les autres, vous savez.
Pourquoi êtes-vous en mettant l'accent circonflexe dans une classe de caractères, de toute façon?
Je suis en train de faire correspondre le texte littéral pour les caractères de contrôle, de ne pas les caractères de contrôle eux-mêmes.
Ctrl-X est défini comme le personnage dont le point de code est le résultat de
Pourquoi êtes-vous en mettant l'accent circonflexe dans une classe de caractères, de toute façon?
Je suis en train de faire correspondre le texte littéral pour les caractères de contrôle, de ne pas les caractères de contrôle eux-mêmes.
Ctrl-X est défini comme le personnage dont le point de code est le résultat de
^-ing
le point de code de X
avec le point de code de @
; c'est, peu 0x40.OriginalL'auteur Cameron Tinker | 2011-02-04
Vous devez vous connecter pour publier un commentaire.
Correspondre à un texte ASCII chaîne de la forme
^X
à l'aide du modèle\^.
, rien de plus. Match un texte ASCII chaîne de la forme\^X
avec le modèle\\\^.
. Vous pouvez contraindre ce point de[?@_\[\]^\\]
, donc\\\^[A-Z?@_\[\]^\\]
. C'est plus facile à lire que[?\x40-\x5F]
pour le membre de la classe de personnage, d'où\\\^[?\x40-\x5F]
pour un BACKSLASH, suivi par un littéral CIRCONFLEXE, suivi par quelque chose qui se transforme en l'un des caractères de contrôle.Note que c'est le résultat de l'impression du motif, ou de ce que vous pouvez lire à partir d'un fichier. C'est ce que vous avez besoin pour passer à la regex compilateur. Si vous avez aussi un littéral de chaîne, vous devez bien sûr le double de chacune de ces barres obliques inverses.
`\\\\\\^[?\\x40-\\x5F]"
Oui, c'est fou, mais c'est parce que Java ne supporte pas les regexes directement comme Groovy et Scala — ou Perl et Ruby. Regex travail est toujours plus facile sans le bbaacckksslllllaasshheesssssess. 🙂Si vous aviez des caractères de contrôle au lieu de représentations indirectes d'entre eux, vous devez utiliser
\pC
pour tous littérale points de code de la propriété GC=Autre, ou\p{Cc}
pour seulement GC=Contrôle.Avez-vous un BACKSLASH suivi par un littéral CIRCONFLEXE suivi d'un caractère qui est l'un des
[A-Z@?\[\]_^]
?Oui, je suis en train de faire correspondre le sens littéral du texte, tel qu'il apparaît dans une chaîne de caractères.
OriginalL'auteur tchrist
Check this out: http://www.regular-expressions.info/characters.html . Vous devriez être en mesure d'utiliser \cA \cZ pour trouver les caractères de contrôle..
\c?
pour SUPPRIMER (U+7F)? Saviez-vous que Java pense\c{
est;
et que\c;
est{
? Ils ont oublié de vérifier que le résultat est\p{Cc}
. Oups!OriginalL'auteur gbvb