0
votes

Regex pour quantifier et trouver un caractère

Considérant une chaîne de 12 caractères, je veux diviser la chaîne en trois groupes de quatre caractères et trouver un caractère dans le groupe 1 et 3.

Par exemple: P>

(^.{0,4})|(.{0,4}$)


1 commentaires

Pouvez-vous nous montrer à quoi ressemble la sortie réelle après la scission? De plus, quel langage de programmation utilisez-vous si vous utilisez un?


3 Réponses :


1
votes

Fondamentalement, vous souhaitez correspondre à B code> qui ont 3 caractères ou moins derrière eux ...

B(?=.{8,11}$)|B(?=.{0,3}$)


0 commentaires

2
votes

Vous pouvez essayer ceci. Cela trouve un 'B' dans n'importe quel groupe de 4.

Version PERL:
^ (?: (? =. {0,3} (b))? ....) (?: (? =. {0,3} (b))? ....) : (? =. {0,3} (b))? ....) $
Version PCRE:
^ (?: (?: (? =. =. {0,3} (b)))? ....) (?: (? =. {0,3} (b))))))) ? ....) (?: (?: (? =. =. {0,3} (b)))? ....) $

https://regex101.com/r/yv72s2/1

expliqué < Pré> xxx

Si vous voulez simplement savoir si un "B" correspond au premier ou au dernier 4, ce serait ce

^ (? =. {12} $) (?: (? =. {0,3}? (B)) ....) | (? <= ^. {8}) (? {0,3}? (B)) ....) $)

https://regex101.com/r/wedtcu/1

expliqué xxx


0 commentaires

1
votes

si Quantifiers avec une largeur infinie ou une plage prédéterminée sont supportés dans un LookefereHind Comme dans, par exemple, le module Python PyPI Regex ou Java Vous pouvez également utiliser : xxx

Exemple de regex en C #

Explication

  • (? <= ^ [ab] {0,3}) affirme ce qui est à gauche est le début de la chaîne, 0-3 fois A ou B
  • b correspondez littéralement
  • | ou
  • b correspondez littéralement
  • (? = [AB] {0,3} $) Assert Qu'est-ce que la droite est 0-3 fois A ou B, affirmez la fin de la chaîne

0 commentaires