est-il possible d'utiliser des ancrages dans une classe de caractères? Cela ne fonctionne pas: il ressemble à J'essaie d'utiliser cette expression pour créer des limites de mots ( ^ code> et
$ code> est traité comme littéral lorsque vous êtes dans une classe de caractères; Cependant, les échapper (
\ ^ code>,
\ $ code>) ne fonctionne pas non plus. P>
\ b code> n'est pas disponible dans XSLT / XQuery), mais je préférerais ne pas utiliser de groupes (
(^ | | \ s) code>) - Comme les groupes non capturants ne sont pas disponibles, cela signifie que dans certains scénarios, je peux me retrouver avec une grande quantité de groupes de capture inutiles, ce qui crée une nouvelle tâche de trouver le "Real" Capturez des groupes dans l'ensemble des inutiles. P> P>
3 Réponses :
Utiliser le caret après que le premier support carré annulera la classe de caractères. Cela vous donne essentiellement le contraire de ce que vous cherchez à faire, ce qui signifie que la classe de caractères correspondra à n'importe quel caractère qui n'est pas dans la classe de caractères. Les classes de caractères annulées correspondent également à des caractères de pause de ligne (invisibles).
Vous pouvez essayer de faire un look négatif éventuellement. p>
Malheureusement, des regards / derrière ne sont pas inclus dans Regex dans les spécifications XQuery et XSLT. J'ai mis à jour la regex pour être plus clair - je voulais en fait inclure l'ancre dans la classe de caractères. L'objectif est de nécessiter une appariement "espace ou début / end-anchor (sans capture)".
Je pense que la réponse est non, vous ne pouvez pas inclure Cependant, vous pouvez concéder un espace à l'avant et à l'arrière de la chaîne, puis cherchez simplement Vous pouvez également vouloir ^ code> et
$ code> comme ancre dans un
[] code>, seulement en tant que caractères littéraux . (J'ai souhaité pouvoir le faire avant aussi.)
\ s code> comme limites de mots et jamais pensez les ancres. Par exemple p>
+ code> après chaque
\ s code>, mais c'est un problème distinct. P> p>
C'est un hack, mais je vais le prendre!
Si vous utilisez Dans ce cas, pourquoi dites-vous que "des groupes non capturants ne sont pas disponibles"? Fonctions XPath et opérateurs 3.0 SPEC < / a> est explicite que "des groupes non capturants sont également reconnus. Ceux-ci sont indiqués par la syntaxe (?: xxxx)" p> analysez-chaîne code> en fonction, vous utilisez probablement une implémentation 3.0 de XSLT ou XQuery. p>
J'utilise Marklogic, qui n'a qu'un sous-ensemble de 3,0 implémenté.
Quiconque a voté pour la fermer comme dupliquer, pouvez-vous fournir un lien vers la prétendue question en double?
@Larsh Ce n'était pas moi, mais c'est la prétendue Dupe: Stackoverflow.com/Questions/9622869/... . Bien qu'il y ait quelques points communs, je pense que c'est un problème sensiblement différent.